Access - Update con Select

 
Vista:

Update con Select

Publicado por Natalia (16 intervenciones) el 19/09/2007 16:16:41
Hola Amgos!
tengo un problema con esto

SQL = "UPDATE EntradaSalida SET fechaliquidacion=" & v_fecha & ",idliquidacion =( select max(id) from liquidacion) where idproductor=" & v_idproductor

me da errro el select , como puedo solucionarlo
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
Imágen de perfil de Alejandro

Corregir la consulta de actualización con subconsulta

Publicado por Alejandro (4142 intervenciones) el 18/08/2023 22:29:55
El error que estás experimentando en tu consulta se debe a la forma en que estás utilizando la subconsulta en la cláusula `SET`. En Access, las subconsultas en cláusulas `SET` no son compatibles en consultas de actualización. En su lugar, puedes utilizar una consulta `UPDATE` con un `JOIN` para lograr el mismo resultado. Aquí tienes cómo corregir tu consulta:

1
2
3
4
5
6
SQL = "UPDATE EntradaSalida " & _
      "INNER JOIN (SELECT MAX(id) AS max_id FROM liquidacion) AS subquery " & _
      "ON 1=1 " & _
      "SET EntradaSalida.fechaliquidacion = " & v_fecha & ", " & _
      "EntradaSalida.idliquidacion = subquery.max_id " & _
      "WHERE EntradaSalida.idproductor = " & v_idproductor

En esta consulta, estamos utilizando un `JOIN` con una subconsulta que calcula el valor máximo de `id` en la tabla `liquidacion`. Luego, actualizamos los campos en la tabla `EntradaSalida` según la condición `idproductor`.

Asegúrate de reemplazar `v_fecha` y `v_idproductor` con los valores apropiados en tu código.

Recuerda que las consultas SQL pueden variar según la base de datos que estés utilizando (por ejemplo, Access, SQL Server, MySQL, etc.). Si estás utilizando una base de datos diferente, es posible que necesites ajustar la sintaxis de la consulta.
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