Delphi - consulta sql

 
Vista:

consulta sql

Publicado por Jovi (27 intervenciones) el 11/05/2004 20:59:33
Necesito actualizar un campo de una tabla y tengo la siguiente consulta:

UPDATE TAREAS SET BORRADO="V" WHERE ID_TAREA=(SELECT ID_TAREA FROM TAREAS, PRUEBAS, APLICACIONES WHERE TAREAS.ID_PRUEBA=PRUEBAS.ID_PRUEBA AND PRUEBAS.ID_APLICACION=APLICACIONES.ID_APLICACION AND APLICACIONES.NOMBRE='SIMDHCP.exe');

pero cuando la ejecuto me sale el error "multiple rows in singleton select" ¿es que en el where solo puede haber un valor? el select me devuelve varios resultados y yo necesito actualizar la tabla para todos ellos ¿alguien podria decirme como? Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta sql

Publicado por mamcx (533 intervenciones) el 11/05/2004 22:18:36
No, el error esta en :

ID_TAREA=(SELECT ID_TAREA ...

Si el selec trae muchas filas, cual de todas se le asigna a Id_Tarea???

Debes chequear si tu base de datos permite el inner join en el update, limitar el resultado a 1 sola fila o tocaria hacer un ciclo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por Jovi (27 intervenciones) el 11/05/2004 22:33:48
¿y como hago un ciclo para poder actualizar todos los campos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por David (2 intervenciones) el 12/05/2004 13:08:02
Prueba con
Update.... ....ID_TAREA IN (SELECT ID_TAREA ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por mamcx (36 intervenciones) el 12/05/2004 17:29:29
Date una vuelta y chequea la documentacion de tu base de datos para la clausula UPDATE y WHERE....antes de ponerte con codigo...

Igualmente, un procedimiento almacenado puede dar la talla... o un codigo en Delphi con un tipico while DataSet.Eof do...

Si es Sql Server 2000, estoy seguro que te da con INNER JOIN...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar