Duda actualización

20/07/2007 - 16:03 por Eclat | Informe spam
Muy buenas de nuevo, tengo una duda. Necesito actualizar una tabla de
vencimientos a partir de un valor que hay en una tabla de entidades.
Pero la entidad no se guarda en el vencimiento, sino en la factura que
genera el vencimiento.

Entidad(id, nombre, flag)
Factura(tipo_factura, serie, numero, id_entidad)
Vencimiento(tipo_factura, serie, numero, nvencimiento, flag)

Tipo factura es C o V, según sea de Compras o de Ventas, y solo necesito
actualizar los de venta. Cual sería la mejor forma de hacer esta
actualización. Uso SQL Server 2005.

Salu2 y gracias,

Preguntas similare

Leer las respuestas

#1 Maxi
20/07/2007 - 16:19 | Informe spam
Edat, revisa en tus libros on line la sentencia UPDATE, tambien por favor
revisa en tus libros online acerca de consultas SQL y combinaciones JOIN


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Eclat" escribió en el
mensaje news:
Muy buenas de nuevo, tengo una duda. Necesito actualizar una tabla de
vencimientos a partir de un valor que hay en una tabla de entidades. Pero
la entidad no se guarda en el vencimiento, sino en la factura que genera
el vencimiento.

Entidad(id, nombre, flag)
Factura(tipo_factura, serie, numero, id_entidad)
Vencimiento(tipo_factura, serie, numero, nvencimiento, flag)

Tipo factura es C o V, según sea de Compras o de Ventas, y solo necesito
actualizar los de venta. Cual sería la mejor forma de hacer esta
actualización. Uso SQL Server 2005.

Salu2 y gracias,
Respuesta Responder a este mensaje
#2 Eclat
20/07/2007 - 16:31 | Informe spam
Ok, Maxi, en ello estoy. Realmente mi duda es si es mejor hacer un

Update table left join

o un

update table
set
from tabla left join...

Pero tienes razón, me he expresado fatal. Estoy mirando la diferencia
entre las 2 formas. De ahí lo del consejo.

Gracias de todas formas, salu2


Maxi escribió:
Edat, revisa en tus libros on line la sentencia UPDATE, tambien por favor
revisa en tus libros online acerca de consultas SQL y combinaciones JOIN

Respuesta Responder a este mensaje
#3 Eclat
20/07/2007 - 16:51 | Informe spam
¿Sería correcta la siguiente instrucción?

update vencimiento
set flag=e.flag
from vencimiento v
left join facturas f on (v.Tipo_Factura=f.Tipo_Factura and
v.serie=f.serie and v.numero=f.numero)
left join entidades e on (f.id_entidad=e.id)
where v.Tipo_Factura='V'

Gracias,

Maxi escribió:
Edat, revisa en tus libros on line la sentencia UPDATE, tambien por favor
revisa en tus libros online acerca de consultas SQL y combinaciones JOIN

Respuesta Responder a este mensaje
#4 principiante
20/07/2007 - 16:59 | Informe spam
Debería ser algo parecido a esto:

Update Vencimiento
set flag=Entidad.flag
from Vencimiento
inner join Factura on
Vencimiento.tipo_factura=Factura.tipo_factura and
Vencimiento.serie=Factura.serie and Vencimiento.numero=Factura.numero
inner join Entidad on Entidad.id=Factura.id_entidad
where Vencimiento.tipo_factura='V'

Asumí que el camo a actualizar es flag.

Jose TH


"Eclat" escribió en el
mensaje news:
Muy buenas de nuevo, tengo una duda. Necesito actualizar una tabla de
vencimientos a partir de un valor que hay en una tabla de entidades. Pero
la entidad no se guarda en el vencimiento, sino en la factura que genera
el vencimiento.

Entidad(id, nombre, flag)
Factura(tipo_factura, serie, numero, id_entidad)
Vencimiento(tipo_factura, serie, numero, nvencimiento, flag)

Tipo factura es C o V, según sea de Compras o de Ventas, y solo necesito
actualizar los de venta. Cual sería la mejor forma de hacer esta
actualización. Uso SQL Server 2005.

Salu2 y gracias,
Respuesta Responder a este mensaje
#5 principiante
20/07/2007 - 17:07 | Informe spam
Yo la veo bien.
Salvo el Left join, es la misma que yo di en mi otro mensaje. Solo que debes
contemplar el caso en que haya NULL's si usas LEFT Join en vez de INNER
Join.


Jose TH



"Eclat" escribió en el
mensaje news:
¿Sería correcta la siguiente instrucción?

update vencimiento
set flag=e.flag
from vencimiento v
left join facturas f on (v.Tipo_Factura=f.Tipo_Factura and v.serie=f.serie
and v.numero=f.numero)
left join entidades e on (f.id_entidad=e.id)
where v.Tipo_Factura='V'

Gracias,

Maxi escribió:
Edat, revisa en tus libros on line la sentencia UPDATE, tambien por favor
revisa en tus libros online acerca de consultas SQL y combinaciones JOIN

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida