consecutivo

03/12/2004 - 18:33 por Alexander Gomez | Informe spam
Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha sacado
mil canas.

tengo una tabla
id proc
17 25
17 26
17 30
17 16
17 18
18 1
18 18
18 19
18 20
donde id y proc son clave principal, la cuestion es que necesito actualizar
proc desde un numero determinado donde el id sea por ejemplo 17 es decir,
quedaría asi(solo el 17)

id proc
17 1800
17 1801
17 1802
17 1803
17 1804

Esto si se puede?, cómo lo haría?

MIL GRACIAS

Preguntas similare

Leer las respuestas

#1 Maxi
03/12/2004 - 18:42 | Informe spam
Hola, vas tener que armar el update para cada caso :(

Si queres numerar registros te paso este link

http://www.sqlteam.com/item.asp?ItemID91


Salu2
Maxi


"Alexander Gomez" escribió en el mensaje
news:%
Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha sacado
mil canas.

tengo una tabla
id proc
17 25
17 26
17 30
17 16
17 18
18 1
18 18
18 19
18 20
donde id y proc son clave principal, la cuestion es que necesito
actualizar proc desde un numero determinado donde el id sea por ejemplo 17
es decir, quedaría asi(solo el 17)

id proc
17 1800
17 1801
17 1802
17 1803
17 1804

Esto si se puede?, cómo lo haría?

MIL GRACIAS

Respuesta Responder a este mensaje
#2 Alexander Gomez
03/12/2004 - 19:03 | Informe spam
Quieres decir que para esto debo utilizar un cursor?

"Maxi" escribió en el mensaje
news:%
Hola, vas tener que armar el update para cada caso :(

Si queres numerar registros te paso este link

http://www.sqlteam.com/item.asp?ItemID91


Salu2
Maxi


"Alexander Gomez" escribió en el mensaje
news:%
Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha
sacado mil canas.

tengo una tabla
id proc
17 25
17 26
17 30
17 16
17 18
18 1
18 18
18 19
18 20
donde id y proc son clave principal, la cuestion es que necesito
actualizar proc desde un numero determinado donde el id sea por ejemplo
17 es decir, quedaría asi(solo el 17)

id proc
17 1800
17 1801
17 1802
17 1803
17 1804

Esto si se puede?, cómo lo haría?

MIL GRACIAS





Respuesta Responder a este mensaje
#3 Javier Loria
03/12/2004 - 19:18 | Informe spam
Hola:
Si Id y Proc son llave primaria es facil ordenarlos con:
==SELECT T1.Id
, T1.Proc
, T1.COUNT(*) AS Consecutivo
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Id=T2.Id
AND T1.Proc>-T2.Proc
GROUP BY T1.Id
, T1.Proc
==Si la consulta anterior es correcta. Entonces seria algo com:
==UPDATE Tabla
SET Proc=TNueva.NuevoProc
FROM Tabla
JOIN (SELECT T1.Id
, T1.Proc
, T1.COUNT(*)+1699 AS NuevoProc
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Id=T2.Id
AND T1.Proc>-T2.Proc
GROUP BY T1.Id ) AS TNueva
ON Tabla.Id=TNueva.Id AND
Tabla.Proc=TNueva.Proc

== Espero te sirva,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Alexander Gomez" wrote in message
news:#
Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha sacado
mil canas.

tengo una tabla
id proc
17 25
17 26
17 30
17 16
17 18
18 1
18 18
18 19
18 20
donde id y proc son clave principal, la cuestion es que necesito


actualizar
proc desde un numero determinado donde el id sea por ejemplo 17 es decir,
quedaría asi(solo el 17)

id proc
17 1800
17 1801
17 1802
17 1803
17 1804

Esto si se puede?, cómo lo haría?

MIL GRACIAS


Respuesta Responder a este mensaje
#4 Alexander Gomez
03/12/2004 - 19:38 | Informe spam
Javier,
la primera consulta si es correcta, pero trato de correr la segunda y no me
da, me dice que no puyede insertar clave duplicada, aca esta

UPDATE Pro_Programacion2
SET Proceso = TNueva.NuevoProc
FROM Pro_Programacion2
JOIN (SELECT T1.Id
, T1.Proceso
, COUNT(*)+1699 AS NuevoProc
FROM Pro_Programacion2 AS T1
JOIN Pro_Programacion2 AS T2
ON T1.Id=T2.Id
AND T1.Proceso>-T2.Proceso
GROUP BY T1.Id, T1.Proceso ) AS TNueva
ON Pro_Programacion2.Id=TNueva.Id AND
Pro_Programacion2.Proceso=TNueva.Proceso
WHERE Pro_Programacion2.ID = 17754

estoy haciendo algo mal?
Mil gracias
"Javier Loria" escribió en el mensaje
news:
Hola:
Si Id y Proc son llave primaria es facil ordenarlos con:
==> SELECT T1.Id
, T1.Proc
, T1.COUNT(*) AS Consecutivo
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Id=T2.Id
AND T1.Proc>-T2.Proc
GROUP BY T1.Id
, T1.Proc
==> Si la consulta anterior es correcta. Entonces seria algo com:
==> UPDATE Tabla
SET Proc=TNueva.NuevoProc
FROM Tabla
JOIN (SELECT T1.Id
, T1.Proc
, T1.COUNT(*)+1699 AS NuevoProc
FROM Tabla AS T1
JOIN Tabla AS T2
ON T1.Id=T2.Id
AND T1.Proc>-T2.Proc
GROUP BY T1.Id ) AS TNueva
ON Tabla.Id=TNueva.Id AND
Tabla.Proc=TNueva.Proc

==> Espero te sirva,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Alexander Gomez" wrote in message
news:#
Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha
sacado
mil canas.

tengo una tabla
id proc
17 25
17 26
17 30
17 16
17 18
18 1
18 18
18 19
18 20
donde id y proc son clave principal, la cuestion es que necesito


actualizar
proc desde un numero determinado donde el id sea por ejemplo 17 es decir,
quedaría asi(solo el 17)

id proc
17 1800
17 1801
17 1802
17 1803
17 1804

Esto si se puede?, cómo lo haría?

MIL GRACIAS






Respuesta Responder a este mensaje
#5 Javier Loria
03/12/2004 - 20:02 | Informe spam
Hola:
Me parece que hay un error en:
AND T1.Proceso>-T2.Proceso


Debe ser >> AND T1.Proceso>=T2.Proceso
El error de la condicion produce que el count de el mismo numero para
todas las filas.
Suerte,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Alexander Gomez" wrote in message
news:
Javier,
la primera consulta si es correcta, pero trato de correr la segunda y no


me
da, me dice que no puyede insertar clave duplicada, aca esta

UPDATE Pro_Programacion2
SET Proceso = TNueva.NuevoProc
FROM Pro_Programacion2
JOIN (SELECT T1.Id
, T1.Proceso
, COUNT(*)+1699 AS NuevoProc
FROM Pro_Programacion2 AS T1
JOIN Pro_Programacion2 AS T2
ON T1.Id=T2.Id
AND T1.Proceso>-T2.Proceso
GROUP BY T1.Id, T1.Proceso ) AS TNueva
ON Pro_Programacion2.Id=TNueva.Id AND
Pro_Programacion2.Proceso=TNueva.Proceso
WHERE Pro_Programacion2.ID = 17754

estoy haciendo algo mal?
Mil gracias
"Javier Loria" escribió en el mensaje
news:
> Hola:
> Si Id y Proc son llave primaria es facil ordenarlos con:
> ==> > SELECT T1.Id
> , T1.Proc
> , T1.COUNT(*) AS Consecutivo
> FROM Tabla AS T1
> JOIN Tabla AS T2
> ON T1.Id=T2.Id
> AND T1.Proc>-T2.Proc
> GROUP BY T1.Id
> , T1.Proc
> ==> > Si la consulta anterior es correcta. Entonces seria algo com:
> ==> > UPDATE Tabla
> SET Proc=TNueva.NuevoProc
> FROM Tabla
> JOIN (SELECT T1.Id
> , T1.Proc
> , T1.COUNT(*)+1699 AS NuevoProc
> FROM Tabla AS T1
> JOIN Tabla AS T2
> ON T1.Id=T2.Id
> AND T1.Proc>-T2.Proc
> GROUP BY T1.Id ) AS TNueva
> ON Tabla.Id=TNueva.Id AND
> Tabla.Proc=TNueva.Proc
>
> ==> > Espero te sirva,
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda
>
> "Alexander Gomez" wrote in message
> news:#
>> Hola a todos, esto debe ser muy facil para ustedes, pero a mi me ha
>> sacado
>> mil canas.
>>
>> tengo una tabla
>> id proc
>> 17 25
>> 17 26
>> 17 30
>> 17 16
>> 17 18
>> 18 1
>> 18 18
>> 18 19
>> 18 20
>> donde id y proc son clave principal, la cuestion es que necesito
> actualizar
>> proc desde un numero determinado donde el id sea por ejemplo 17 es


decir,
>> quedaría asi(solo el 17)
>>
>> id proc
>> 17 1800
>> 17 1801
>> 17 1802
>> 17 1803
>> 17 1804
>>
>> Esto si se puede?, cómo lo haría?
>>
>> MIL GRACIAS
>>
>>
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida