Hola Foro:
Necesito agrupar dos tablas por mes, una tiene el total de la factura y otra el detalle.
El resultado que se necesita obtener, es la suma de los ID_conceptos ( 101 + 102 ) agrupados por mes.(*)
MES, Total, Cantidad
5 ,1911.20, 140 (10+25+20+50+10+25)
Más abajo encontrarán los create e incert si quieren cargar las tablas para probar.
Estoy usando Firebird 2.5
Desde ya gracias por su atención.
Las tablas son estas:
tabla
VentasABC
ID_Venta MES , Total
1 , 5 , 456.10
2 , 5 , 999.00
3 , 5 , 456.00
Tabla
DetalleABC
ID_Venta, ID_Concepto, Cantidad
1 , 101 , 10 *
1 , 102 , 25 *
1 , 103 , 30
2 , 101 , 20 *
2 , 102 , 50 *
2 , 103 , 90
3 , 101 , 10 *
3 , 102 , 25 *
3 , 103 , 30
Estoy haciendo esto....
Código SQL
[-]Select v.Mes, sum(v.Total) as Total, sum(d.cantidad) as Cantidad
from VentasABC v
join DetalleABC d on d.ID_Venta=v.ID_Venta
Where d.ID_Concepto in (101,102)
group by v.mes
... Pero me duplica el campo v.Total
Acá estan los create y los insert.
Código SQL
[-]Create table VentasABC (
ID_Venta Integer,
MES Integer,
Total Numeric (15,2) );
Insert into VentasABC Values (1, 5, 456.10);
Insert into VentasABC Values (2, 5, 999.00);
Insert into VentasABC Values (3, 5, 456.10);
Create table DetalleABC (
ID_Venta Integer,
ID_Concepto Integer,
Cantidad Numeric (15,2));
Insert into DetalleABC values (1 , 101,10);
Insert into DetalleABC values (1 , 102,25);
Insert into DetalleABC values (1 , 103,30);
Insert into DetalleABC values (2 , 101,20);
Insert into DetalleABC values (2 , 102,50);
Insert into DetalleABC values (2 , 103,90);
Insert into DetalleABC values (3 , 101,10);
Insert into DetalleABC values (3 , 102,25);
Insert into DetalleABC values (3 , 103,30);
Nota: Sumar distintos ID_Conceptos puede parecer raro (sumar papas + cebollas) pero en este caso son distintos ID_Conceptos que responden a un mismo tipo de articulo.