problemas con Update.
Buenos diass!!
A ver si podeis ayudarme, tengo dos tablas, clientes y repartidores , y necesito hacer un update en un campo de la tabla clientes cuando se cumpla la condición que clientes.cod = repartidores.cod. El problema viene cuando quiero darle el valor a pelo, no el de un campo de la tabla, sino haría un select sobre el campo y le daría el valor. update clientes set valor = (select valor form clientes..) where condición. El problema es cuando el valor quiero darselo yo, no que lo saque de un campo de la tabla. update clientes set valor ='S' where condición. Entonces al ser una condición de dos tablas diferentes no me deja. A ver si le encontrais solución. Lo quiero ejecutar en Firebird 2.0 Gracias |
Saludos.
Para esa operación puedes hacer un StoredProcedure que contenga las dos sentencias y dependiendo de un valor que le mandes al Procedure ejecute una de ellas. Me refiero:
Es solo una idea, ese código no es que te vaya a funcionar sino que es la esencia de lo que quiero expresarte. Hasta luego. |
|
Lo del procedimiento almacenado, ya lo tenía, gracias, solo me interesaba saber si podía hacer esto en otra sentencia Update.
UPDATE CLIENTES SET clientes.CAMPO = 'S' WHERE CLIENTES.COD = REPARTIDORES.COD No he entendido el segundo post, si puedes explicarmelo.. |
Hola
Saludos |
[quote=rastafarey;292774]
Creo que puedes interpretar la sentencia y usarla a tu manera. |
celades
Por lo que entendido tiene que estar el campo vacío?
El clientes.campo ya tiene valores 'N' y 'S' tu consulta no me da errores, pero no me hace el update. No quiero cambiar todos los 'N' solo los que cumplan la condición. |
Hola
no hagas caso del null simplemente lo que hace el exists es que se updatee siempre que la subconsulta devuelva uno o varios registros o sea que sea cierta. El
El update creo que esta bien a no ser que no te haya entendido bien Saludos |
Resp
Compadre Dame la estructuras de las tablas y escribe la cosulta mas o menos como la quieres para escribirte la consult acomo la necesitas.
|
no tira
Celades, la consulta no me da error pero no me modifica nada.
rasta A ver tengo clientes(cod,trec(tipo Si/NO) y tengo repartidores(cod) Entre ellas no hay relación ninguna. Los campos de clientes.trc son igual a 'N' y quiero hacer un Update en ese campo de clientes al valor 'S' cuando el cod de clientes sea igual al de repartidores. No me importa como sea la consulta si funciona. Y me ahorro el procedimiento almacenado que creo no es necesario. firebird 2.0 |
Resp
Aqui estan las tabla
Y Aqui esta el sql Adapta las cosultas con los campo que tienes. Si entendi bien la pregunta esa es la respuesta. Espero te sirva. |
Cita:
|
Error
Este es el error que me da en vuestras dos consultas.
Insert failed because a column definition includes validation constraints. Validation error for column trc, value 'S'. |
Tu crees que aqui somos adivinos o algo por el estilo.
Pon el script de tus tablas. script script script script No se si me explique. Lo que aui necesitamos para poderte ayudar. |
Vale lo tengo, funciona perfectamente.las dos consultas.Muchisimas gracias y perdonad las molestias.
|
La franja horaria es GMT +2. Ahora son las 19:31:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi