on 05-27-2014 10:27 PM
Hola amigos,
Comentar que estoy necesitando un reporte que me muestre la "ultima venta de un producto por sucursal", estoy desarrollando la misma de la forma en que me la piden, pero al momento de correr la misma me despliega bien los datos solo que de la siguiente forma:
ITEM ALMACEN1 ALMACEN2 ALMACEN3
ITEM1 1 0 0
ITEM1 0 2 0
ITEM1 0 0 3
los datos están correctos, sin embargo, yo quiero que me muestre de la siguiente forma:
ITEM ALMACEN1 ALMACEN2 ALMACEN3
ITEM1 1 2 3
La consulta es la siguiente:
/*SELECT FROM [dbo].[ORCT] C0*/
DECLARE @FechaInicio AS DATETIME
/* WHERE */
SET @FechaInicio = /* B0.DocDate */ '[%0]'
/*SELECT FROM [dbo].[ORCT] C0*/
DECLARE @FechaFin AS DATETIME
/* WHERE */
SET @FechaFin = /* C0.DocDate */ '[%1]'
SELECT T0.[ItemCode], T2.[ItemName],
'CRISTO'=(ISNULL((SELECT SUM(Y.Quantity) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='01-CR'),0)-ISNULL((SELECT SUM(Y.Quantity) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='01-CR'),0)),
'MINERO'=(ISNULL((SELECT SUM(Y.Quantity) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='03-MI'),0)-ISNULL((SELECT SUM(Y.Quantity) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='03-MI'),0)),
'COLONIA'=(ISNULL((SELECT SUM(Y.Quantity) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='04-CP'),0)-ISNULL((SELECT SUM(Y.Quantity) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='04-CP'),0)),
'4CAÑADAS'=(ISNULL((SELECT SUM(Y.Quantity) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='06-4C'),0)-ISNULL((SELECT SUM(Y.Quantity) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' AND Y.WhsCode='06-4C'),0))
FROM OITW T0
INNER JOIN OWHS T1 ON T0.WhsCode = T1.WhsCode
INNER JOIN OITM T2 ON T0.ItemCode = T2.ItemCode
WHERE
ISNULL((SELECT SUM(Y.Quantity*Y.Price) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND Y.WhsCode = T0.WhsCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)-ISNULL((SELECT SUM(Y.Quantity*Y.Price) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T0.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0) != 0
ORDER BY T1.[WhsCode], T0.[ItemCode]
Quisiera por favor me puedan ayudar a lograr el mismo, donde me estoy equivocando?
Saludos
Hola pablo,
Si indicas que los datos están bien en tu consulta, puedes probar colocándole un en este punto SELECT distinct T0.[ItemCode], T2.[ItemName], y quitas el ORDER BY T1.[WhsCode], T0.[ItemCode] para ver si asi te muestra los datos como deseas.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Pablo.
De acuerdo con Wuilmer pero deberias incluir el GroupBy antes del OrderBy.
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
106 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.