![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizar el contenido de las primeras celdas UPDATE TOP
Hola foro:
Necesitaria q alguien me saque d un apuro, necesito actualizar el valor de los 15 primeros registros q saca una consulta, pero no se como hacerlo. La consulta que funciona es esta: SELECT TOP 15 REGISTRE.ORDEN_FABRICACION, REGISTRE.ACABADOS, REGISTRE.FECHA, REGISTRE.PRIORIDAD FROM REGISTRE WHERE (((REGISTRE.ACABADOS) Is Null)) ORDER BY REGISTRE.FECHA, REGISTRE.PRIORIDAD; pero no se como hacer para que me modifique el valor del campo acabados de estos registros. con la consulta: update registre set acabados = "0" where (((REGISTRE.ACABADOS) Is Null)) ORDER BY REGISTRE.FECHA, REGISTRE.PRIORIDAD entonces me actualiza el valor de todos los registros y solo necesitaria los 15 o 10 primeros. Alguien puede ayudarme?? Gracias por adelantado. |
#2
|
||||
|
||||
Si la tabla REGISTRE tiene "clave primaria" puedes utilizar un IN. Algo así (te lo pongo sin probar, así que ya dirás si me he dejado algo); Como mínimo te servirá para coger la idea...
(suponiendo por ejemplo que el campo ORDEN_FABRICACION fuera la primary key)
Se trata de usar el SELECT..IN para seleccionar los 15 primeros y luego hacer el update sólo sobre esos. NOTA: El ORDER BY para el Update no es necesario
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
![]() Muchas, muchisimas gracias.
si que ha servido para pillar la idea, me has sacado de un buen atasco mental. la sentencia me a qedado asi: UPDATE registre SET acabados = "0" WHERE ORDEN_FABRICACION IN (SELECT TOP 1 REGISTRE.ORDEN_FABRICACION FROM REGISTRE WHERE (((REGISTRE.ACABADOS) Is Null)) ORDER BY REGISTRE.FECHA, REGISTRE.PRIORIDAD); Lo que me pasaba era q la tenia asi y me devolvia demasiados campos, y no entendia el problema update registre set acabados = "0" where ( SELECT TOP 15 * FROM REGISTRE WHERE (((REGISTRE.ACABADOS) Is Null)) ORDER BY REGISTRE.FECHA, REGISTRE.PRIORIDAD) muchas gracias de nuevo. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|