Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problema con update

Estas en el tema de Problema con update en el foro de Oracle en Foros del Web. http://img543.imageshack.us/img543/7783/41608328.png Buenas tardes foro, soy nuevo en lo que respecta Oracle y ando aprendiendo a hacer consultas complejas, me he topado con este problema el ...
  #1 (permalink)  
Antiguo 07/11/2012, 14:55
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 12 años, 1 mes
Puntos: 0
Problema con update



http://img543.imageshack.us/img543/7783/41608328.png

Buenas tardes foro, soy nuevo en lo que respecta Oracle y ando aprendiendo a hacer consultas complejas, me he topado con este problema el cual no se como anclar el count en un update, lo que quiero hacer es lo sgte:

Actualizar en 20% el salario de todos los empleados que vendieron al menos una unidad del producto de código 100860

La sentencia para los empleados que vendieron al menos una unidad de dicho peroducto seria:

select e.ename,count(*) from emp e join ord o on e.empno=o.empno join item i on i.ordid=o.ordid
where prodid='100860' group by e.ename having count(*)>0;

La pregunta es como lo agrego a una sentencia update? he intentado usar subconsultas y no he tenido ningun resultado, espero me puedana yudar un saludo!!
  #2 (permalink)  
Antiguo 08/11/2012, 03:02
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: Problema con update

¿Que guardas en cada tabla? En emp los empleados, en item los productos, ¿En empno guardas las ventas? Si es así no necesitas el having porque si un empleado no ha vendido un producto no aparecerá en los cruces.

Luego puedes usar la subconsulta para ponerla en el WHERE de tu UPDATE o hacer el UPDATE con los JOINS (lo que es más complicado de entender, pero más eficiente)

Etiquetas: select, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:11.