Query Analisis de venta por Almacen específico

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?

Hola @ppronny.

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)

Espero te sea de utilidad, saludos. :wink:

2 Me gusta

Muchas Gracias por tu apoyo es mi primer comentario y pues comenzando en este grupo

1 me gusta

Se solucionó la consulta con el comentario del colega?
De ser así, presionar en la opción de solución :white_check_mark: debajo del mensaje que soluciona la duda.

De no ser así, responder con mayor detalle así otras personas pueden ayudarle

2 Me gusta

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.inQty
OINM.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)

----- prueba este a ver si te sirve

1 me gusta

Gracias por tu aporte