Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/12/2012, 18:58
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Cómo unir tres tablas?

Esta sería una forma simple:
Código MySQL:
Ver original
  1.     idCompra,
  2.     idProducto,
  3.     unit_price Unitario,
  4.     SUM(qty_reserved) reservado,
  5.     SUM(totalReserva) totalReserva,
  6.     SUM(qty_purch) qty_purch,
  7.     SUM(totalCompra) totalCompra
  8.     (SELECT
  9.         R.idCompra,
  10.         R.idProducto,
  11.         P.unit_price Unitario,
  12.         S.qty_reserved,
  13.         (S.qty_reserved *  P.unit_price) totalReserva,
  14.         0  qty_purch,
  15.         0 totalCompra
  16.     FROM
  17.         Seleccionados S INNER JOIN Producto P ON S.stm_auto_key = P.stm_auto_key
  18.         INNER JOIN resumen R ON R.idProductoCompra =S.idProductoCompra
  19.         WHERE R.idCompra=1
  20.     UNION ALL
  21.     SELECT
  22.         R.idCompra,
  23.         R.idProducto,
  24.         P.unit_price Unitario,
  25.         0 qty_reserved,
  26.         0 totalReserva,
  27.         S.qty_purch,
  28.         (S.qty_purch *  P.unit_price) totalCompra
  29.     FROM Comprados C INNER JOIN Producto P ON S.stm_auto_key = P.stm_auto_key
  30.         INNER JOIN resumen R ON R.idProductoCompra =S.idProductoCompra
  31.     WHERE R.idCompra=1) T1
  32. GROUP BY idCompra, idProducto, unit_price Unitario;
funcionaría en MySQL, pero no estoy muy seguro de su portabilidad en Oracle, por lo que ya te dije, y tu pareces haber ignorado completamente:
Cita:
Salvo aquello que se conoce como ANSI SQL, no comparten sintaxis.
Eso significa que en muchos casos, ni la sintaxis ni la lógica aplicada puedes pasarla de uno a otro DBMS sin tener que hacer cambios que vuelven irreconocible la consulta.
No lo tomes a la ligera.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)