Hola a todo, tengo esta consulta que tomé de este foro:
SELECT T0.CardCode, T0.[ItemCode], T0.[Dscription],
SUM(CASE WHEN Month(T0.Docdate)=1 then (T0.OutQty-T0.InQty) else 0 END) as 'Enero 2019',
SUM(CASE WHEN Month(T0.Docdate)=2 then (T0.OutQty-T0.InQty) else 0 END) as 'Febrero 2019',
SUM(CASE WHEN Month(T0.Docdate)=3 then (T0.OutQty-T0.InQty) else 0 END) as 'Marzo 2019',
SUM(CASE WHEN Month(T0.Docdate)=4 then (T0.OutQty-T0.InQty) else 0 END) as 'Abril 2019',
SUM(CASE WHEN Month(T0.Docdate)=5 then (T0.OutQty-T0.InQty) else 0 END) as 'Mayo 2019',
SUM(CASE WHEN Month(T0.Docdate)=6 then (T0.OutQty-T0.InQty) else 0 END) as 'Junio 2019',
SUM(CASE WHEN Month(T0.Docdate)=7 then (T0.OutQty-T0.InQty) else 0 END) as 'Julio 2019',
SUM(CASE WHEN Month(T0.Docdate)=8 then (T0.OutQty-T0.InQty) else 0 END) as 'Agosto 2019',
SUM(CASE WHEN Month(T0.Docdate)=9 then (T0.OutQty-T0.InQty) else 0 END) as 'Septiembre 2019',
SUM(CASE WHEN Month(T0.Docdate)=10 then (T0.OutQty-T0.InQty) else 0 END) as 'Octubre 2019',
SUM(CASE WHEN Month(T0.Docdate)=11 then (T0.OutQty-T0.InQty) else 0 END) as 'Noviembre 2019',
SUM(CASE WHEN Month(T0.Docdate)=12 then (T0.OutQty-T0.InQty) else 0 END) as 'Diciembre 2019',
SUM(T0.OutQty-T0.InQty) AS 'Unidades',
T1.WhsCode as 'Almacen'
FROM OINM T0, OITW T1 WHERE T0.[DocDate] BETWEEN '20190101' AND '20190131' AND T0.[TransType] =13 AND CardCode <> '07-000247' AND T1.WhsCode = 'ALM-WKC'
GROUP BY T0.CardCode, T0.ItemCode, T0.Dscription, T1.WhsCode
ORDER BY T0.Dscription asc
Al quitar OITW sale exactamente como lo tengo en el informe de analisis de ventas por articulos pero cuando dejo el codigo tal como está se incrementan los valores a que de debe eso?
Primero que nada, reiterarte que una norma del foro es dar el formato correcto al código SQL que se agrega, ya lo he editado por ti. Tambien hay que cuidar la sección en que creas tus temas, tu post se quedó en el “limbo”, ya tembién lo he ubicado en la sección correcta.
Sobre tu tema… No estás especificando el “JOIN” entre las tablas, por ello te trae rasultados no correctos.
La tabla OINM ya cuenta con un campo de almacén (OINM.WareHouse) ¿Para qué agregarías la tabla OITW?
De necesitar la tabla OITW en tu Query, debes especificar a través de qué campos se ligará con tu tabla principal (FROM OINM T0 Inner Join OITW T1 On T0.ItemCode = T1.Itemcode and T0.Warehouse = T1.WhsCode)
Saludos cordiales, creo que te falto agregar el transtype ‘14’ que son las notas de crédito
Puedes colocar T0. [Transtype] >=13 and T0. [Transtype] <=‘14’ para que te de las ventas netas, porque pueden haber facturas anuladas o devueltas y estas te alterarian los resultados, incluyendo el ‘14’ esas facturas no aparecerían y si una una factura tiene devoluciones parciales te mostraría la venta neta en tus cajas o unidades, saludos
select year(OINM.DOCDATE) as ano, month(OINM.DOCDATE) as mes,
sum(OutQty) as Ventas_Cajas, sum(OINM.InQty) as Dev_Cajas,
SUM(OINM.OutQtyOINM.Price) AS Bs_Ventas,
SUM(OINM.inQtyOINM.Price) AS Bs_Dev,
sum(OINM.OutQty) - sum(OINM.InQty) as Cajas_Netas_Vendidas, SUM(OINM.OutQtyOINM.Price) - SUM(OINM.inQtyOINM.Price) as Bolivares_Netos from OINM
where (OINM.DOCDATE)>=‘01-01-2020’ and (OINM.DOCDATE)<=‘31-12-2020’ and oinm.transtype >= ‘13’ AND OINM.TRANSTYPE <=‘14’
— and oinm.warehouse ='xxx ’ <---- colocas aqui en las xxx el almacen que desees listar
group by year(OINM.DOCDATE),month(OINM.DOCDATE)
order by year(OINM.DOCDATE),month(OINM.DOCDATE)