cancel
Showing results for 
Search instead for 
Did you mean: 

Query de consulta de ventas de articulos por grupo de articulos concentrado en cantidad y costo por mes y año

Former Member
0 Kudos


Buenas tardes para solicitar de su apoyo para un query que me muestre la venta por grupo de artículos concentrado en cantidad y costo por mes y por año para hacer un comparativo de antemano gracias y saludos

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member212657
Active Participant
0 Kudos

Hola Felix.

Podrias colocar en la primera linea del query que seleccione el itemname junto con el itemcode y si quieres ver el año, me parece entender que lo que quieres es que te muestre el periodo, en ese caso agregale a que tome el campo code de la tabla OFPR en una variable segun lo que necesites y para esto ponlo todo dentro de un Stored Procedure.

Saludos

Former Member
0 Kudos

Hola Ángel me pierdo un poco con los términos me podrías poner un ejemplo con las sentencias gracias y saludos

Former Member
0 Kudos

Felix intenta con este:


SELECT T0.ITEMCODE,

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 1 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'ENE Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 2 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'FEB Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 3 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'MAR Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 4 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'ABR Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 5 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'MAY Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 6 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'JUN Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 7 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'JUL Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 8 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'AGO Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 9 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'SEP Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 10 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'OCT Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 11 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'NOV Amt',

(SELECT SUM(T1.QUANTITY*T1.PRICE) FROM INV1 T1 with

(NOLOCK) WHERE MONTH(T1.DOCDATE) = 12 AND T1.ITEMCODE

= T0.ITEMCODE) AS 'DIC Amt'

FROM dbo.OITM T0

LEFT JOIN dbo.INV1 T1 ON T1.ItemCode = T0.ItemCode

WHERE T0.SellItem = 'Y'

GROUP BY T0.ItemCode,YEAR(T1.DOCDATE) HAVING YEAR(T1.DOCDATE) = YEAR(GETDATE())

ORDER BY T0. ITEMCODE

Former Member
0 Kudos

Hola buen día ya lo probé pero habría posibilidad de que en lugar de aparecer el código del articulo apareciera el nombre y que separara los meses por año saludos

Former Member
0 Kudos

Ok es fácil en el comienzo del query  cambia el itemcode por ItemName y lo agregas también al fina en el GroupBy, el informe te muestra el año actual solo es que cambies la condición en el having y agregues el campo para comparar los años.

quedo pendiente