cancel
Showing results for 
Search instead for 
Did you mean: 

Analisis de Ventas

Former Member
0 Kudos

Jovenes expertos necesito realizar un reporte personalizado de un analisis de ventas, en sap exite uno pero necesito agregar mas variables y datos, mi pregunta es como puedo saber que tablas extrae los datos el reporte de analisis de ventas de SAP, por si alguno lo supiera seria de gran ayuda. Ya que si realizo una query con las tablas de ventas (OINV, INV1) no me da el mis dato me da mas.

Espero haber dado a explicar y agradezco la ayuda y la informacion.

Saludos Cordiales

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola Carlos,
debes tomar en cuenta las notas de Credito (ORIN, RIN1), restando:   Ventas - NotasCredito

SELECT T0.DocDate, T2.CardCode, T2.CardName, T0.DocNum,  T4.ItemCode, T4.Dscription, T4.Quantity, T4.Price, T4.PriceBefDi, (T4.Gtotal - T4.vatSum) 'Neto', T4.VatSum, T4.Gtotal

FROM OINV T0

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN INV1 T4 ON T4.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN @FechaInicial AND @FechaFinal

AND

T0.CANCELED ='N'

UNION

SELECT T0.DocDate, T2.CardCode, T2.CardName, T0.DocNum,  T4.ItemCode, T4.Dscription, T4.Quantity, T4.Price*-1, T4.PriceBefDi*-1, (T4.Gtotal - T4.vatSum)*-1 'Neto', T4.VatSum*-1, T4.Gtotal*-1

FROM ORIN T0

INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode

INNER JOIN RIN1 T4 ON T4.DocEntry = T0.DocEntry

WHERE T0.DocDate BETWEEN @FechaInicial AND @FechaFinal

AND

T0.CANCELED ='N'

Former Member
0 Kudos

Gracias Joseph por tu pronta respuesta te cuento que me sigue dando diferencia por ejemplo el analisis de SAP me dice que el valor en ventas es de 7,000.00 y cuando el query que me proporcionate me dice que es de 8,502.00 no entiendo el porque.

De antemano muy agradecido por la ayuda y si tuvieras otra idea te lo agradeceria bastante.

Saludos

Former Member
0 Kudos

El analisis de Ventas de SAP lo estas generando por Clientes, Articulos o Empleado de Ventas?
y que fecha estas utilizando, Fecha de contabilizacion, vencimiento o del documento?

Former Member
0 Kudos

Gracias Joseph lo estoy generando por Articulos, Fecha de contabilizacion.

Saludos

Former Member
0 Kudos

Intena con este Query,
este es el que uso para articulos

DECLARE @FechaInicial DATETIME

DECLARE @FechaFinal DATETIME

SET @FechaInicial=('20140901')

SET @FechaFinal=('20140930')

SELECT

    ob.itemcode,

    A.ItemName dscription,

    SUM(ob.unidades) As unidades

    ,ROUND(SUM(ob.total),2) as 'Total'

    --,(SUM(ob.total)/Sum(ob.unidades)) precio

FROM (

    SELECT c.itemcode,  SUM(c.unidades) unidades, SUM(c.total) total  FROM(

    SELECT DISTINCT B.itemcode,  SUM(B.unidades) unidades, SUM(total2) total FROM(

        SELECT * FROM (

        SELECT distinct

            T0.DocEntry,

            t0.DocNum,

            T1.LineNum,

            T1.ItemCode  as 'itemcode',

            T1.InvQty 'unidades',

            --T1.Linetotal 'total',

            --((t0.DiscPrcnt / 100)) porcentaje,

            (T1.Linetotal-(((T0.DiscPrcnt / 100)) * T1.Linetotal)) total2

        FROM OINV T0  

            INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry

            INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode

        WHERE T0.DocDate between @FechaInicial AND @FechaFinal 

            AND T0.CANCELED ='N'

        GROUP BY

            T0.DocEntry,

            T0.DocNum,

            T1.LineNum,

            T1.ItemCode,

            T2.NumInCnt,

            T1.InvQty,

            T1.LineTotal,

            T0.DiscPrcnt

        )A

    )B

    GROUP BY B.itemcode

    UNION ALL

    SELECT DISTINCT B.itemcode, SUM(B.unidades) unidades, SUM(total2) total FROM(

        SELECT * FROM (

        SELECT distinct

            T0.DocEntry,

            t0.DocNum,

            T1.LineNum,

            T1.ItemCode  as 'itemcode',

            CASE

                WHEN T0.CANCELED IN ('N','Y') THEN -T1.InvQty

                ELSE  T1.InvQty

            END 'unidades',

            CASE

                WHEN T0.CANCELED IN ('N','Y') THEN -(T1.Linetotal-(((t0.DiscPrcnt / 100)) * T1.Linetotal))

                ELSE  (T1.Linetotal-(((t0.DiscPrcnt / 100)) * T1.Linetotal))

            END total2

        FROM ORIN T0  

            INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry

            INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode

        WHERE T0.DocDate BETWEEN @FechaInicial AND @FechaFinal 

        GROUP BY

            T0.DocEntry,

            T0.DocNum,

            T0.CANCELED,

            T1.LineNum,

            T1.ItemCode,

            T2.NumInCnt,

            T1.InvQty,

            T1.LineTotal,

            T0.DiscPrcnt

        )A

    )B

    GROUP BY B.itemcode

    )C

    GROUP BY c.itemcode

    ----------------------------------------------------------------------------------------------

   

) as Ob 

INNER JOIN OITM A ON A.ItemCode = ob.itemcode

GROUP BY ob.itemcode, A.numincnt, A.ItemName

ORDER BY itemcode

Former Member
0 Kudos

Buenas noches,

totalmente deacuerdo con la select generada por Joseph, pero quisiera deberian de tener en cuenta el concepto de "Sin contabilización de cantidad" en los abonos o notas de credito, en ese caso solo resta el importe y no las cantidades

CASE when t2.NoInvtryMv='Y' then 0 else -1*(t2.Quantity)  end AS QUANTITY

les adjunto como podrian tratarlas

Antonio José Infantes

Former Member
0 Kudos

Buenos dias, Joseph gracias por tu aporte quedo perfecto el query con la misma informacion del Analisis de venta, te lo agradezco bastante por tu gran ayuda.

Gracias tambien a Antonio por su aporte.

Que tengan un excelente dia

Saludos Cordiales

0 Kudos

Joseph Pérez ayuda con tu consulta quisiera saber como le aumento mas campos y porque toca hacerlo solo pormes y no por un periodo mas largo ayuda porfa

Former Member
0 Kudos

Hola Hugo, pues la consulta permite colocar el rango de tiempo que desees, solo tienes que cambiar los parámetros que están en las variables de arriba. Y los campos que necesites se los puedes agregar en el query.

0 Kudos

ya intentente cambiar el rango le puse para que sea para los 12 mese y me sale un error que dice dividir zero y null, y quisiera agregar los capos que son de la lista de precios de la tabla itm1 pero no me sale se daña tu query ,ayudame poniendolos para ver como se hace gracias de antemano

Former Member
0 Kudos

que raro la única división es la de el Porcentaje de descuento y se divide por 100, no te tendría que salir eso.

Crea una nueva Discusión en la comunidad poniendo lo que necesitas y  te ayudaremos.

Answers (0)