cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda en Query

former_member203638
Active Contributor
0 Kudos

Hola a toda la comunidad:

Tengo un problemita con un query que estoy haciendo, en la empresa manejamos varias series de facturacion. Los reportes nativos de sap son muy generales, quiero sacar un reporte de facturas por "serie".

Se manejan varias series, (media carta o carta) dependiendo de la cantidad de partidad del pedido.

Pero my query no me esta sacando los resultados correctos. tengo 2 querys creados, uno para sacar reporte de facturas que se imprimen en hojas media carta, y otro query que me saque la facturacion de la serie carta y no me cuadra con este query.

SELECT TIPO = 'SELLOS', (SUM(T0.DOCTOTAL)) MONTO FROM OINV T0 INNER JOIN NNM1 T1 ON T0.SERIES = T1.SERIES INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry WHERE T0.DocDate BETWEEN [%0] AND [%1] AND T1.SeriesName = 'SELLOS' AND T0.CANCELED = 'N' and T2.TargetType < >'14'

UNION

SELECT TIPO = 'SELLOS_M', (SUM(T0.DOCTOTAL)) MONTO FROM OINV T0 INNER JOIN NNM1 T1 ON T0.SERIES = T1.SERIES INNER JOIN INV1 T2 ON T0.DocEntry = T2.DocEntry WHERE T0.DocDate BETWEEN [%0] AND [%1] AND T1.SeriesName = 'SELLOS_M' AND T0.CANCELED = 'N' and T2.TargetType <>'14'

Sellos y Sellos_M vienen siendo las series, y el resultado del query seria nada mas que me arroje el monto total por serie sin el detalle.

validando (con el T2.TargetType <>'14') que no esten en notas de credito las facturas.

Alguien que me pueda dar un tip en lo que este fallando u otra manera de generar el query?

Muchas gracias!

Saludos Cordiales.

Alessandro.

No se por que el foro no me esta permitiendo poner los signos de diferencia <> entre el targettype y '14' pero si los tengo en mi query en sap.

Edited by: Alessandro Santinelli on Oct 10, 2008 7:43 PM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Mira yo tengo algo como esto....son ventas por serie por margen y gpo de articulo.

Select distinct X.slpcode,X.docdate, X.slpname,X.itmsgrpnam,X.seriesname, X.total1-isnull(W.total2,0) as total1, CASE WHEN (isnull(X.total1,0)-isnull(W.total2,0)) = '0' THEN '0' ELSE ((isnull(X.grssprofit,0)-isnull(W.grssprofit,0))/(isnull(X.total1,0)-isnull(W.total2,0)))*100 END as grssprofit, isnull(X.grssprofit,0)-isnull(W.grssprofit,0) as grssprofit2 from

(select distinct slpcode, docdate,slpname,itmsgrpnam,seriesname, sum(isnull(total1,0)) as total1, sum(isnull(grssprofit,0)) as grssprofit from (

SELECT distinct t3.slpcode,t3.slpname,T0.docnum, T0.docdate,

T5.[ItmsGrpNam], T1.[LineTotal]AS Total1, t1.grssprofit as grssprofit, T7.[SeriesName]

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

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode

INNER JOIN OITM T4 on T1.ItemCode = t4.ItemCode

INNER JOIN OITB T5 on t4.itmsgrpcod = t5.itmsgrpcod

INNER JOIN NNM1 T7 ON T0.Series = T7.Series

WHERE T1.[BaseType] <> '203' AND T0.[DocSubType] <> 'DN' AND T0.DocDate >= @FechaInicial AND T0.DocDate <= @FechaFinal

) a group by slpcode, slpname,itmsgrpnam,docdate,seriesname) X left join

(select distinct slpcode, docdate,slpname, itmsgrpnam,seriesname, sum(total2) as total2, sum(grssprofit) as grssprofit from (

SELECT distinct t0.docnum, t3.slpcode,t3.slpname, T0.docdate,

T6.[ItmsGrpNam], isnull(T1.[Linetotal],0) AS total2, isnull(t1.grssprofit,0) as grssprofit,

T7.[SeriesName] FROM ORIN T0 INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode

INNER JOIN OITM T5 on T1.ItemCode = t5.ItemCode

INNER JOIN OITB T6 on t5.itmsgrpcod = t6.itmsgrpcod

INNER JOIN NNM1 T7 ON T0.Series = T7.Series

WHERE T1.[BaseType] <> '203' AND T0.[DocSubType] <> 'DN' AND T0.DocDate >= @FechaInicial AND T0.DocDate <= @FechaFinal) b

group by slpcode,slpname,itmsgrpnam,docdate,seriesname)W ON X.slpcode = W.slpcode AND X.itmsgrpnam = W.itmsgrpnam AND X.seriesname = W.seriesname ORDER BY seriesname

Yo lo uso dentro de reporting services........lo puedes adecuar a tu necesidad claro....pero este hace lo que tu quieres.

Le quite algunas cosas que yo uso, quiza veas tablas demas pero es mas o menos....si te fijas primero saco todas las facturas, despues las notas de credito y al ultimo lo resto.

Lo hago asi por que si un vendedor hace una factura digamos los dias finales del mes y al sigueinte la cancela debe restarse al mes siguiente sin embargo en ese mes tiene que contabilizarsele.

Espero haberte ayudado.

Saludos

Answers (1)

Answers (1)

former_member203638
Active Contributor
0 Kudos

Gracias por tu respuesta, pero.. donde haces tu sumatoria de series y donde validas que todas las sumatoria de facturas realmente nos e encuentren canceladas?

Saludos.

Former Member
0 Kudos

Como te decia eso lo hago por reporting services....