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

[SOLUCIONADO] unir resultado de dos tablas

Estas en el tema de unir resultado de dos tablas en el foro de Mysql en Foros del Web. tengo dos tablas con diferente estructura que contienen las ventas de los productos. necesito obtener la suma de las ventas de una familia de productos ...
  #1 (permalink)  
Antiguo 01/07/2013, 02:44
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 7 meses
Puntos: 0
unir resultado de dos tablas

tengo dos tablas con diferente estructura que contienen las ventas de los productos. necesito obtener la suma de las ventas de una familia de productos contenidas en las dos tablas.
Las dos tablas coinciden en el campo articulo. Los selects individuales son
Código:
select left(montura,1) as familia , count(*)  as numventas from regicaja 
inner join monturas 
on regicaja.montura = monturas.moncodi
where fecven>='2012-05-02' and fecven<='2012-07-15' and monturas.monrelacio = "3600"
group by familia
Y
Código:
select left(montura,1) as familia , count(*) as numvtas from ventas
inner join monturas 
on regicaja.montura = monturas.moncodi
where fecven>='2012-05-02' and fecven<='2012-07-15' and monturas.monrelacio = "3600"
group by familia
de que forma le digo que el resultado de las dos consultas las junte y acumule el valor de los campos numventas.
he hecho pruebas con UNION pero no consigo la sintaxis correcta.
gracias
  #2 (permalink)  
Antiguo 01/07/2013, 04:03
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 7 meses
Puntos: 0
Respuesta: unir resultado de dos tablas

bien, he seguido trabajando con el tema y he conseguido unir el resultado. Ahora con la setentencia
Código:
(select  tda as tda, left(montura,1) as familia , count(*) as numvta from regicaja
inner join monturas 
on montura = monturas.moncodi
where fecven>='2012-05-02' and fecven<='2012-07-15' and monturas.monrelacio = "3600"
group by tda, familia)
union
(select vtatda as tda, left(vtamontura,1) as familia, count(*) as numvta from vendes
inner join monturas
on vtamontura = monturas.moncodi
where vtafecven>='2012-05-02' and vtafecven<='2012-07-15' and monturas.monrelacio = "3600"
group by tda, familia)
consigo una tabla com esta

tda familia numvta
1 1 1
1 8 52
2 1 10
2 8 5
1 1 10
1 8 5
2 1 2
2 8 6

ahora como hago para que este resultado se agrupe por las columnas 1 y 2 la tercera sea el sumatorio? o sea
tda familia sum(numvta)
1 1 11
1 8 57
2 1 12
2 8 11

gracias
  #3 (permalink)  
Antiguo 01/07/2013, 04:13
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 7 meses
Puntos: 0
Respuesta: unir resultado de dos tablas

ya està!!!!!!
y aquí queda para quien lo necesesite
Código:
select tda, familia, sum(numvta) from 
    (select  tda as tda, left(montura,1) as familia , count(*) as numvta from regicaja
     inner join monturas on montura = monturas.moncodi
     where fecven>='2012-05-02' and fecven<='2012-07-15' and monturas.monrelacio = "3600"
     group by tda, familia
     union all
     select vtatda as tda, left(vtamontura,1) as familia, count(*) as numvta from vendes
     inner join monturas
     on vtamontura = monturas.moncodi
     where vtafecven>='2012-05-02' and vtafecven<='2012-07-15' and monturas.monrelacio = "3600"
     group by tda, familia) as resultat

group by resultat.tda, resultat.familia

Etiquetas: campo, join, resultado, select, tabla, tablas
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 20:04.