Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8644

Re: Monthly Sale By Item

$
0
0

creo que nececitan algo como esto:

 

DECLARE @FECHAINI DATE = '2015-01-01';

DECLARE @FECHAFIN DATE = '2015-02-28';

DECLARE @sql nvarchar(MAX) = '';

DECLARE @columns_1 nvarchar(MAX) = '';

DECLARE @columns_2 nvarchar(MAX) = '';

 

SET @columns_1 = STUFF(

(

SELECT DISTINCT

    ',Piezas_Mes' + cast( MONTH(DocDate) as varchar) + '_año_' + cast( YEAR(DocDate) as varchar)

FROM

    (SELECT DocDate FROM OINV where DocDate BETWEEN @FECHAINI AND @FECHAFIN) AS P

FOR XML PATH('')

), 1, 1, '');

SET @columns_2 = STUFF(

(

SELECT DISTINCT

    ',Monto_Mes' + cast( MONTH(DocDate) as varchar)  + '_año_' + cast( YEAR(DocDate) as varchar)

FROM

    (SELECT DocDate FROM OINV where DocDate BETWEEN @FECHAINI AND @FECHAFIN) AS P

 

FOR XML PATH('')

), 1, 1, '');

 

 

SET @sql = N'

select

    Z.PRODUCTO,

    Z.DESCRIPCION,

    ' + @columns_1 + ',' + @columns_2 + N'

from

(

        select

            *

        FROM

        (

                SELECT

                    a.ItemCode AS PRODUCTO,

                    a.Dscription AS DESCRIPCION,

                    ''Piezas_Mes'' + cast( MONTH(b.DocDate) as varchar) + ''_año_'' + cast( YEAR(b.DocDate) as varchar) AS MES,

                    a.Quantity AS CANTIDAD

                FROM INV1 AS a

                    INNER JOIN OINV AS b

                    ON a.DocEntry=b.DocEntry

                    INNER JOIN OCRD AS c ON b.CardCode = c.CardCode

                WHERE b.DocType = ''I'' AND b.DocDate BETWEEN ''' + CAST( @FECHAINI AS VARCHAR) + ''' AND ''' + CAST( @FECHAFIN AS VARCHAR) + '''

            UNION ALL

                SELECT

                    d.ItemCode AS PRODUCTO,

                    d.Dscription AS DESCRIPCION,

                    ''Piezas_Mes'' + cast( MONTH(e.DocDate) as varchar) + ''_año_'' + cast( YEAR(e.DocDate) as varchar) AS MES,

                    (d.Quantity * -1) AS CANTIDAD

                FROM RIN1 AS d

                    INNER JOIN ORIN AS e

                    ON d.DocEntry = e.DocEntry

                    INNER JOIN OCRD AS f ON e.CardCode = f.CardCode

                WHERE e.DocType = ''I'' AND e.DocDate BETWEEN ''' + CAST (@FECHAINI AS VARCHAR) + ''' AND ''' + CAST( @FECHAFIN AS VARCHAR) + '''

        ) as TABLADATOS

        pivot

        (

        SUM(TABLADATOS.CANTIDAD) for TABLADATOS.MES IN(' + @columns_1 + N')

        ) as P

 

) as Z

inner join

(

        select

            *

        from

        (

                SELECT

                     a.ItemCode AS PRODUCTO,

                     a.Dscription AS DESCRIPCION,

                     ''Monto_Mes'' + cast( MONTH(b.DocDate) as varchar) + ''_año_'' + cast( YEAR(b.DocDate) as varchar) AS MES,

                     a.LineTotal AS TOTAL

                FROM INV1 AS a

                    INNER JOIN OINV AS b

                    ON a.DocEntry=b.DocEntry

                    INNER JOIN OCRD AS c ON b.CardCode = c.CardCode

                WHERE b.DocType = ''I'' AND b.DocDate BETWEEN ''' + CAST( @FECHAINI AS VARCHAR) + ''' AND ''' + CAST( @FECHAFIN AS VARCHAR) + '''

            UNION ALL

                SELECT

                     d.ItemCode AS PRODUCTO,

                     d.Dscription AS DESCRIPCION,

                     ''Monto_Mes'' + cast( MONTH(e.DocDate) as varchar) + ''_año_'' + cast( YEAR(e.DocDate) as varchar) AS MES,

                     (d.LineTotal * -1) AS TOTAL

                FROM RIN1 AS d

                    INNER JOIN ORIN AS e

                    ON d.DocEntry = e.DocEntry

                    INNER JOIN OCRD AS f ON e.CardCode = f.CardCode

                WHERE e.DocType = ''I'' AND e.DocDate BETWEEN ''' + CAST( @FECHAINI AS VARCHAR) + ''' AND ''' + CAST( @FECHAFIN AS VARCHAR) + '''

        ) as TABLADATOS

            pivot

        (

        SUM(TABLADATOS.TOTAL) for TABLADATOS.MES IN (' + @columns_2 + N')

        ) as P

) as Y

on Z.PRODUCTO = Y.PRODUCTO and Z.DESCRIPCION = Y.DESCRIPCION

order by

PRODUCTO,

DESCRIPCION;';

EXEC sp_executesql @sql;

 

 

 

 

 

 

SALUDOS ...


Viewing all articles
Browse latest Browse all 8644

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>