Solicito su ayuda para validar una consulta query en sap hanna , donde me muestre la factura de deudores, total antes de iva, total del documento al igual que me muestre la nota credito correspondientes con el valor antes de iva y valor total y el empleado de ventas…
Actualmente tengo esta consulta pero se me repiten todos los datos.
Se requiere que en una sola linea me muestre la información.
y poderlo agrupar por numero de documento para que no se repitan.
Esta es la consulta .
SELECT T0."DocNum" as "Número Factura", T0."DocDueDate",T0."DocEntry" as "Num Interno Factura", T1."LineTotal" as "Total Antes de Iva", T0."DocTotal", T2."DocEntry" as "Nota Crédito"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
INNER JOIN RIN1 T2 ON T2."BaseEntry" = T0."DocEntry" AND T2."BaseType" = T0."ObjType"
INNER JOIN ORIN T3 ON T3."DocEntry" = T2."DocEntry"
INNER JOIN INV1 T4 ON T0."DocEntry" = T4."DocEntry"
INNER JOIN OSLP T5 ON T0."SlpCode" = T5."SlpCode"
Ya realice los cambios pero me aparece el siguiente error: 1). [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;260 invalid column name: T2.Baseline: line 5 col 94 ‘’ (ECM2) (at pos 344)
Aqui la consulta sin la T4 (no me habia dado cuenta que estaba repetida)
SELECT T0."DocNum" as "Número Factura", T0."DocDueDate",T0."DocEntry" as "Num Interno Factura", T1."LineTotal" as "Total Antes de Iva", T0."DocTotal", T2."DocEntry" as "Nota Crédito"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
INNER JOIN RIN1 T2 ON T2."BaseEntry" = T0."DocEntry" AND T2."BaseType" = T0."ObjType" And T2."Baseline" = T1."LineNum"
INNER JOIN ORIN T3 ON T3."DocEntry" = T2."DocEntry"
INNER JOIN OSLP T5 ON T0."SlpCode" = T5."SlpCode"
Cambia el orden para que mande factura y cambia INNER por LEFT para Notas de Credito.
SELECT T0."DocNum" as "Número Factura", T0."DocDueDate",T0."DocEntry" as "Num Interno Factura", T1."LineTotal" as "Total Antes de Iva", T0."DocTotal", T2."DocEntry" as "Nota Crédito"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
left JOIN RIN1 T2 ON T2."BaseEntry" = T0."DocEntry" AND T2."BaseType" = T0."ObjType"
left JOIN ORIN T3 ON T3."DocEntry" = T2."DocEntry"
INNER JOIN OSLP T5 ON T0."SlpCode" = T5."SlpCode
Muchas gracias, me funciono con la información que necesitaba y así quedo la consulta,
Pero requiero de su ayuda para validar porque se me están repitiendo los valores hasta 4 veces por linea, como puedo agregar a la consulta la suma del campo “LineTotal” y que no se repitan los valores.
Agradezco muchísimo los aportes que serian muy valiosos para seguir aprendiendo.
SELECT T3."DocNum", T3."DocDate", T3."DocDueDate", T2."DocEntry", T2."LineTotal"as "Total NC Antes de IVA", T3."DocTotal" as "Total NC ",T0."DocNum" as "Numero Factura",T0."DocEntry" as "Num Interno Factura",T0."DocDate",T1."LineTotal" as "Total FV Antes de IVA", T0."DocTotal" as "Total Factura Venta"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
left JOIN RIN1 T2 ON T2."BaseEntry" = T0."DocEntry" AND T2."BaseType" = T0."ObjType"
left JOIN ORIN T3 ON T3."DocEntry" = T2."DocEntry"
INNER JOIN OSLP T5 ON T0."SlpCode" = T5."SlpCode"
GROUP BY T2."DocEntry" , T0."DocNum" , T0."DocDueDate",T0."DocEntry" , T1."LineTotal" , T0."DocTotal",T3."DocNum", T3."DocDate", T3."DocDueDate", T2."DocEntry",T2."LineTotal",T3."DocTotal", T0."DocDate",T0."DocNum"
Perdón solo revisé la parte donde mencionas que se repite la información, aunque analizando a detalle entonces no se está duplicando la información, en realidad estás mostrando las líneas del documento.
Si no quieres una línea en el query por cada línea del documento tendrías que reestructurar tu código, tendrías que aplicar SUM() a tus campos a nivel línea y quitarlos del Group By.
SELECT T3."DocNum", T3."DocDate", T3."DocDueDate", T2."DocEntry", SUM(T2."LineTotal") as "Total NC Antes de IVA", T3."DocTotal" as "Total NC ",T0."DocNum" as "Numero Factura",T0."DocEntry" as "Num Interno Factura",T0."DocDate", Sum(T1.LineTotal) as "Total FV Antes de IVA", T0."DocTotal" as "Total Factura Venta"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
left JOIN RIN1 T2 ON T2."BaseEntry" = T0."DocEntry" AND T2."BaseType" = T0."ObjType"
left JOIN ORIN T3 ON T3."DocEntry" = T2."DocEntry"
INNER JOIN OSLP T5 ON T0."SlpCode" = T5."SlpCode"
GROUP BY T2."DocEntry" , T0."DocNum" , T0."DocDueDate",T0."DocEntry", T0."DocTotal",T3."DocNum", T3."DocDate", T3."DocDueDate", T2."DocEntry",T3."DocTotal", T0."DocDate",T0."DocNum"
Muchas gracias me dejo una sola linea con la función SUM
Pero el valor total antes de iva no coincide con la suma …
Como se muestra en la siguiente imagen.
No se si se requiere un condicional mas
Primero un intro: volviste a crear un tema sin dar el formato correcto al código, creo que el foro nos da mucha ayuda, lo menos que podemos hacer es acatar las normas mínimas con que cuenta.
Sobre tu consulta, a mi me muestra de manera correcta, tal vez podrías mover un poco el orden de agrupación, empieza por agrupar por el DocEntry pero de la T0.
De igual manera debes analizar que en tu empresa trabajan con gastos adicional, retenciones, etc. creo que ya son escenarios muy propios de tu empresa, si me preguntas, tu tema inicial y original ya fue solventado, bien pudiera ya cerrarse el tema con la ayuda que te han proporcionado.