cancel
Showing results for 
Search instead for 
Did you mean: 

Última venta por sucursal - ayuda

0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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.

0 Kudos

Muchas gracias por el dato amigo, esa fue la solución, con esto mi reporte anda de las mil maravillas.

Gracias nuevamente y saludos.

Former Member
0 Kudos

A la orden, que bueno que te ayudo.

Saludos.

Answers (1)

Answers (1)

former_member212657
Active Participant
0 Kudos

Hola Pablo.

De acuerdo con Wuilmer pero deberias incluir el GroupBy antes del OrderBy.

Saludos

0 Kudos

Gracias por el dato amigo, gracia por su ayuda.

Saludos