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

Duda Con select

Estas en el tema de Duda Con select en el foro de Oracle en Foros del Web. Buenas tardes Tengo la Siguiente Consuta para Hacer: Tento Dos tablas de la siguiente Manera Tabla 1 Tabla 2 Item Cantidad_Vendida.......................... Item........Cantidad_Comprada 1.............10.................................. ..............2..................4 1.............20.................................. ...
  #1 (permalink)  
Antiguo 08/03/2011, 16:36
 
Fecha de Ingreso: abril-2004
Ubicación: cali
Mensajes: 32
Antigüedad: 20 años, 8 meses
Puntos: 0
Duda Con select

Buenas tardes Tengo la Siguiente Consuta para Hacer:
Tento Dos tablas de la siguiente Manera
Tabla 1 Tabla 2
Item Cantidad_Vendida.......................... Item........Cantidad_Comprada
1.............10.................................. ..............2..................4
1.............20.................................. ..............1..................5
2.............. 5................................................3 ................20
3.............50
4...............4

Yo necesito que me salga lo siguiente
Item .............Cantidad_Comprada...........Cantidad_ vendida
1...........................5..................... .............. 30
2...........................4..................... .............. 5
3...........................20.................... ............... 50

Pero Lo que me está generando es lo siguiente
Item .............Cantidad_Comprada...........Cantidad_ vendida
1..........................10................................... 30
2...........................4..................... .............. 5
3...........................20.................... ............... 50
Select ítem ,sum(tabla2.cantidad_comprada),sum(tabla1.cantidad _vendida)
From tabla1 inner join tabla2 on
Tabla1.item=tabla2.item
No sé qué es lo que estoy realizando mal o como lo puedo hacer
Gracias

Última edición por efexto; 08/03/2011 a las 16:51
  #2 (permalink)  
Antiguo 09/03/2011, 04:27
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: Duda Con select

Al hacer el INNER JOIN como en la tabla1 hay dos referencias y en la tabla2 hay una te juntara las dos referencias con esa una. Si tuvieras tres referencias a un producto en la tabla1 y cuatro en la tabla2 te aparecerían 12 registros del producto y las sumas darían mal. Hay que agrupar antes de hacer el INNER

Una forma de hacerlo (aunque no es la más eficiente) es:

Código SQL:
Ver original
  1. SELECT a.item, cc, cv
  2. FROM (SELECT item, SUM(cantidad_vendida) AS cv
  3.       FROM tabla1
  4.       GROUP BY item) AS a
  5. INNER JOIN (SELECT item, SUM(cantidad_comprada) AS cc
  6.             FROM tabla2
  7.             GROUP BY item) AS b ON
  8. a.item=b.item

Aunque antes de esa yo probaría esta (pero no se si funciona):

Código SQL:
Ver original
  1. SELECT ítem, SUM(tabla2.cantidad_comprada), SUM(tabla1.cantidad _vendida)
  2. FROM tabla1
  3. INNER JOIN tabla2 ON
  4. Tabla1.item=tabla2.item
  5. GROUP BY item

Etiquetas: select
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 01:27.