on 10-22-2014 10:48 PM
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
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'
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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
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
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
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.