Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/01/2009, 11:54
MarioHeredia
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Ayuda Update varias fila con Subconsulta

Y que pasa cuando en la tabla ventas dos, el campo estado es distinto de null???
El update que formularon no funciona.

Para estas situaciones existe la sentence merge.

merge into ventas v1
USING (select v.num_vta,
v2.fecha,
nvl(v2.estado, 'PD') estado
FROM ventas v,
ventas_2 v2
WHERE v.num_vta = v2.num_vta
and v2.fecha is not null
and v.fecha is null
--and "si quieres filtrar por fecha, por estado o por otro campo lo puedes hacer aqui"
) aux
ON (v1.num_vta = aux.num_vta)
WHEN MATCHED THEN UPDATE SET v1.fecha = aux.fecha,
v1.estado = aux.estado
--WHEN NOT MATCHED THEN INSERT (v1.num_vta, v1.fecha, v1.estado) values (aux.num_vta, aux.fecha, aux.estado);

puedes descomentar la condicion para insert en el caso de que la venta no se encuentra en la tabla ventas, entonces que la inserte.

De esta manera, te evitas las subconsultas y tienes mayor control sobre las condiciones del update.


Saludos, Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.