on 08-31-2015 6:09 PM
Buenas tardes
estoy realizando una consulta para comparar mis ordenes de venta VS mis facturación en producto, (no en ganancias) pero al hacer mi consulta y comparar contra el analicis de venta los datos no me coinciden. entonces no se que valosres tome en cuenta el analisis de venta que yo no este tomando en mi consulta.
por hay busque en internet y dentro del foro ya se tenia esta pregunta
https://scn.sap.com/thread/1880000
pero creo que ya no se dio solución
dejo mi consulta de igual manera espero me puedan ayudar
select DLN1.ItemCode as 'CODIGO',DLN1.Dscription as 'ARTICULO',SUM(DLN1.Quantity) as 'ORDEN DE VENTA',INV1.ItemCode as 'CODIGO',INV1.Dscription as 'ARTICULO',
sum(INV1.Quantity) as 'FACTURADO',
COALESCE(sum(INV1.Quantity) * 100 / NULLIF(SUM(DLN1.Quantity),0),0) AS 'EFICIENCIA % DE VENTA'
from ORDR INNER JOIN RDR1 ON ORDR.DocEntry = RDR1.DocEntry /*ventas*/
INNER JOIN DLN1 ON DLN1.BaseRef = ORDR.DocNum
INNER JOIN ODLN ON ODLN.DocEntry = DLN1.DocEntry /*embarque*/
INNER JOIN INV1 ON INV1.BaseRef = ODLN.DocEntry
INNER JOIN OINV ON OINV.DocEntry = INV1.DocEntry /*facturas*/
WHERE OINV.DocNum < '1000000' AND OINV.CANCELED = 'N' and OINV.Series = '4' and OINV.DocType = 'I' AND DLN1.ItemCode = INV1.ItemCode
/*and OINV.DocDate BETWEEN @i and @f*/
GROUP BY INV1.ItemCode,DLN1.ItemCode,INV1.Dscription,DLN1.Dscription
resultado
CODIGO | ARTICULO | ORDEN DE VENTA | CODIGO | ARTICULO | FACTURADO | EFICIENCIA % DE VENTA |
769153SG0B-A | CTR PLR LWR RH PG05 | 153306.000000 | 769153SG0B-A | CTR PLR LWR RH PG05 | 150264.000000 | 98.015733 |
769163SG0B-A | CTR PLR LWR LH PG05 | 154320.000000 | 769163SG0B-A | CTR PLR LWR LH PG05 | 148752.000000 | 96.391912 |
769173SG0B-A | GARN W/H RH PG05 | 150336.000000 | 769173SG0B-A | GARN W/H RH PG05 | 143280.000000 | 95.306513 |
769183SG0B-A | GARN W/H LH PG05 | 152736.000000 | 769183SG0B-A | GARN W/H LH PG05 | 155280.000000 | 101.665619 |
lo que tengo en mi analizáis de venta facturado de estas piezas
Antonio,
De inicio no estás considerando las notas de crédito (tabla ORIN y RIN), entonces esto provocaría que tus números salgan más grandes que lo que te puede mostrar el Análisis de Ventas de SAP.
Otra: quiero pensar en que el Análisis de Ventas estás consultando por Artículos (no por Cliente ni por Empleado). De lo contrario, tu query estaría incorrecto ya que solo estás obteniendo documentos tipo Artículo.
Por útlimo, en el filtro de número de documento (enseguida del WHERE) no indiques como string el número, sino como número (sin la comilla).
Es lo que puedo sugerirte de momento.
Saludos,
JC.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Buenas
Prueba lo siguiente.
SELECT DISTINCT T.ItemCode, T.ItemName,
ISNULL((SELECT SUM(Y.Quantity) FROM ORDR X INNER JOIN RDR1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Pedidos',
ISNULL((SELECT SUM(Y.Quantity) FROM ODLN X INNER JOIN DLN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Entregas',
ISNULL((SELECT SUM(Y.Quantity) FROM ORDN X INNER JOIN RDN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Devoluciones',
ISNULL((SELECT SUM(Y.Quantity) FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Facturado',
ISNULL((SELECT SUM(Y.Quantity) FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'N/Credito'
FROM OITM T
GROUP BY T.ItemCode, T.ItemName
ORDER BY T.ItemCode
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
esta muy bien tu consulta tiene buenos datos, solo que me sigue mandando datos diferentes a el Análisis de Ventas de SAP.
consulta
Número de artículo | Descripción del artículo | Pedidos | Entregas | Devoluciones | Facturado | N/Credito |
769153SG0B-A | CTR PLR LWR RH PG05 | 26,533.00 | 28,044.00 | 864 | 28,332.00 | 0 |
769163SG0B-A | CTR PLR LWR LH PG05 | 26,569.00 | 28,044.00 | 864 | 28,332.00 | 0 |
769173SG0B-A | GARN W/H RH PG05 | 26,761.00 | 27,660.00 | 660 | 28,440.00 | 0 |
Análisis de Ventas de SAP. por factura
Número de artículo | Descripción del artículo | Cantidad |
769153SG0B-A | CTR PLR LWR RH PG05 | 25,596.00 |
769163SG0B-A | CTR PLR LWR LH PG05 | 25,632.00 |
769173SG0B-A | GARN W/H RH PG05 | 25,560.00 |
buenos dias
siguiendo tu consulta Felipe Loyola modifique algunas cosas y ya están cuadrados de igual forma quiero agregar el campo de Eficiencia de ventas donde comparo el campo de Pedidos VS Facturado pero creo que no me da las cantidades correctas.
SELECT DISTINCT T.ItemCode, T.ItemName,
ISNULL((SELECT SUM(Y.Quantity)
FROM ORDR X INNER JOIN RDR1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Pedidos',
ISNULL((SELECT SUM(Y.Quantity)
FROM ODLN X INNER JOIN DLN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Entregas',
ISNULL((SELECT SUM(Y.Quantity)
FROM ORDN X INNER JOIN RDN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Devoluciones',
ISNULL((SELECT SUM(Y.Quantity)
FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry
WHERE X.CANCELED = 'N' and X.Series = '4' and X.DocType = 'I' and Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Facturado',
ISNULL((SELECT SUM(Y.Quantity)
FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'N/Credito',
(select COALESCE(sum(INV1.Quantity) * 100 / NULLIF(SUM(RDR1.Quantity),0),0)from ORDR INNER JOIN RDR1 ON ORDR.DocEntry = RDR1.DocEntry /*ventas*/
INNER JOIN DLN1 ON DLN1.BaseRef = ORDR.DocNum
INNER JOIN ODLN ON ODLN.DocEntry = DLN1.DocEntry /*embarque*/
INNER JOIN INV1 ON INV1.BaseRef = ODLN.DocEntry
INNER JOIN OINV ON OINV.DocEntry = INV1.DocEntry /*facturas*/ where RDR1.ItemCode = T.ItemCode) AS 'Eficiencia de ventas %'
FROM OITM T
where T.PrcrmntMtd = 'M'
GROUP BY T.ItemCode, T.ItemName
ORDER BY T.ItemCode
Pudiera ser porque en la columna ade Eficiencia no estás filtrando las fechas. Además, por como armaste ese query, estás obteniendo solo las partidas de las órdenes de venta que ya fueron entregadas y facturadas. Suponiendo que tienes entregas y/o facturas parciales sobre la OV, estarías excluyendo aquellas que aún no entregas y/o facturas.
Yo te recomendaría que el subquery lo formaras por:
1. Un select de las órdenes de venta, y
2. Un select de las facturas.
y ahora sí, la suma de cantidades de cada SELECT que te comento son los que utilices para calcular tu eficiencia. P. ej. así:
select campos, campos, campos,
(
(select sum(quantity) *100 from INV1 where docdate filtro fecha y otros filtros)
/
(select sum(quantity) from RDR1 where docdate filtro fecha y otros filtros)
) as 'Eficiencia'
from tablas...
La intención de ese ejemplo es solo mostrarte como quedaría tu subquery de eficiencia (texto en azul). La forma en que lo calcules tú la decides...
Espero haberme explicado.
Saludos,
JC.
PUES ME QUEDO ALGO ASI
SELECT DISTINCT T.ItemCode, T.ItemName,
ISNULL((SELECT SUM(Y.Quantity)
FROM ORDR X INNER JOIN RDR1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' and X.Canceled='N'),0)'Pedidos',
ISNULL((SELECT SUM(Y.Quantity)
FROM ODLN X INNER JOIN DLN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' and X.Canceled='N'),0)'Entregas',
ISNULL((SELECT SUM(Y.Quantity)
FROM ORDN X INNER JOIN RDN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' and X.Canceled='N'),0)'Devoluciones',
ISNULL((SELECT SUM(Y.Quantity)
FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry
WHERE X.CANCELED = 'N' and X.Series = '4' and X.DocType = 'I' and Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]'),0)'Facturado',
ISNULL((SELECT SUM(Y.Quantity)
FROM ORIN X INNER JOIN RIN1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' and X.Canceled='N' ),0)'N/Credito',
((SELECT SUM(Y.Quantity) *100 FROM OINV X INNER JOIN INV1 Y ON Y.DocEntry=X.DocEntry
WHERE X.CANCELED = 'N' and X.Series = '4' and X.DocType = 'I' and Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]')
/ (SELECT SUM(Y.Quantity) FROM ORDR X INNER JOIN RDR1 Y ON Y.DocEntry=X.DocEntry
WHERE Y.ItemCode=T.ItemCode AND X.DocDate >='[%0]' AND X.DocDate<='[%1]' and X.Canceled='N')) AS 'Eficiencia de Ventas'
FROM OITM T
where T.PrcrmntMtd = 'M'
GROUP BY T.ItemCode, T.ItemName
ORDER BY T.ItemCode
User | Count |
---|---|
100 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
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.