Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sql para cambiar inf en un tabla a partir de los datos de otra (https://www.clubdelphi.com/foros/showthread.php?t=77886)

ALVARO RUBIO 03-03-2012 18:40:18

Sql para cambiar inf en un tabla a partir de los datos de otra
 
Poseo una base con tres tablas, Terceros, Facturas, Vendedores
Facturas tiene entre otros los campos numero, tercero, vendedor
Terceros tiene entre otros Nit, nombre y Vendedor
Vendedor tiene entre otros Codigovendedor, nombre vendedor

Necesito colocar para cada una de las facturas de la tabla facturas, el campo vendedor que esta en la tabla terceros,

Para mas explicacion, los vendedores que estan en este momento en la tabla facturas, no son los que necesito.
Se modifico la tabla terceros y se reasignaron los vendedores y necesito actualizar la tabla facturas con los nevos vendedores asignados en la tabla terceros.

Lo anterior lo reuqiero hacer mediante un sql
Lo de la tabla vendedores es solo un comentario.

SI me pueden indicar algun error en la enunciacion del tema muchas gracias.

ecfisa 03-03-2012 19:38:32

Hola Alvaro.

No tengo como comprobarlo en este equipo, pero probá de este modo:
Código SQL [-]
UPDATE FACTURAS T1
SET T1.VENDEDOR = (SELECT T2.VENDEDOR FROM TERCEROS T2
                   WHERE T1.TERCERO = T2.ID)

Saludos.

ALVARO RUBIO 05-03-2012 23:00:13

Muchas gracias
 
Funciona perfecto, En la tabla de facturas tengo la fecha, si quisiera hacer el cambio solo para un rango de fechas enero01 de 2010 a Duciembre31 de 2011,

ecfisa 05-03-2012 23:25:37

Hola Alvaro.

Tendrías que especificarlo como condición en la clausula WHERE:
Código SQL [-]
UPDATE FACTURAS T1
SET T1.VENDEDOR = (SELECT T2.VENDEDOR FROM TERCEROS T2
                   WHERE T1.TERCERO = T2.ID)
WHERE T1.FECHA BETWEEN :F_DESDE AND :F_HASTA

Saludos.

ALVARO RUBIO 05-03-2012 23:50:50

Gracias, lo prueba sobre mi base de datos.

ALVARO RUBIO 06-03-2012 04:18:27

Gracias, al aplicarlo me genera error SQL linea 4 char 23
El campo es tipo DATE, lo he colocado 01/01/2010, (01/01/2011) y "01/01/2010", y 12/31/2011, (12/31/2011) y despues del and 12/31/2011",
Se que es por el formato pero no he podido saber como va.

Muy novato debe de ser muy sencillo, Gracias

ecfisa 06-03-2012 04:51:19

Hola Alvaro.

En lugar de 12/31/2011 intenta con 31/12/2011 (con el formato: dia/mes/año).

Si no funciona así, vas a tener que detallar un poco más. Es decir: El mensaje de error en forma literal (click sobre el error, Ctrl+C para copiar y Ctrl+V para pegar aquí), lenguaje, manejador de bd y componentes con los que trabajas.

Saludos.

ALVARO RUBIO 06-03-2012 22:08:01

Gracias,
estoy trabajando en ello.



Alvaro Rubio


La franja horaria es GMT +2. Ahora son las 08:50:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi