Ayuda SAP

Query promedio de dias de pago de las facturas

Buenos dias Familia como estan?

Necesito de su ayuda, estoy haciendo un Query para sacar el promedio de dias de pago de cada cliente de la compañia en los ultimos 6 meses, osea cual es el promedio de dias de pago con relacion al dia que se crea la factura y a la fecha que se paga pero en general no por cada factura, agradeceria su ayuda, tengo el siguiente codigo que me muestra las facturas con sus pagos pero no se como hacer que me muestre un solo resultado y que me traiga ese promedio de dias de pago en los 6 ultimos meses

SELECT T0."CardCode", T0."CardName", T4."SlpName", T0."DocNum" AS "Numero Factura", T0."DocDate" AS "Fecha Factura", T0."DocTotal" AS "Total Factura", T3."DocNum" AS "Numero Pago", T3."DocDate" AS "Fecha Pago",T2."ReconSum" AS "Pago Efectuado"
FROM OINV T0
INNER JOIN OJDT T1 ON T0."TransId" = T1."TransId"
INNER JOIN ITR1 T2 ON T1."TransId" = T2."TransId"
INNER JOIN (SELECT TA."DocNum", TC."TransId", TC."ReconNum",TC."ReconSum",TA."DocDate",TA."DocTotal" 
FROM ORCT TA
INNER JOIN OJDT TB ON TA."TransId" = TB."TransId"
INNER JOIN ITR1 TC ON TB."TransId" = TC."TransId"
) T3 ON T2."ReconNum" = T3."ReconNum"
INNER JOIN OSLP T4 ON T0."SlpCode" = T4."SlpCode"
WHERE T0."CardCode" LIKE '%%CL%%'

Serian de mucha ayuda

1 me gusta

Hola @Nelson183 espero esta consulta te sirva.
;with cte AS (
SELECT
ROW_NUMBER () OVER (ORDER BY T0.“CardCode”) ‘RowIndex’
,T0.“CardCode”
,T0.“DocDate” AS “Fecha Factura”
,T3.“DocDate” AS “Fecha Pago”
,DATEDIFF(DAY,T0.“DocDate”,T3.“DocDate”) ‘DayDiff’
FROM OINV T0
INNER JOIN OJDT T1 ON T0.“TransId” = T1.“TransId”
INNER JOIN ITR1 T2 ON T1.“TransId” = T2.“TransId”
INNER JOIN (SELECT TA.“DocNum”, TC.“TransId”, TC.“ReconNum”,TC.“ReconSum”,TA.“DocDate”,TA.“DocTotal”
FROM ORCT TA
INNER JOIN OJDT TB ON TA.“TransId” = TB.“TransId”
INNER JOIN ITR1 TC ON TB.“TransId” = TC.“TransId”
) T3 ON T2.“ReconNum” = T3.“ReconNum”
INNER JOIN OSLP T4 ON T0.“SlpCode” = T4.“SlpCode”
WHERE T0.“CardCode” LIKE ‘%%CL%%’
)
SELECT SUM(Te.DayDiff) / MAX(Te.RowIndex) FROM cte Te

1 me gusta

Hola @eduardo_buitr no me funciono la manera como me lo indicas me saca un error :
1). [SAP AG][LIBODBCHDB DLL][HDBODBC] Syntax error or access violation;257 sql syntax error: incorrect syntax near “with”: line 1 col 2 ‘Alertas recibidas’ (OAIB) (at pos 2)

No se si me puedas ayudar

1 me gusta

Hola @Nelson183 yo lo ejecuto en el sql y funciona, en donde lo estas ejecutando?

1 me gusta

Hola @eduardo_buitr yo lo estoy ejecutando en el Query Manager para guardar la consulta

Hola @Nelson183 , yo la copie y le cambie las comillas por las correctas, la copie con el ; inicial y funciona bien.

1 me gusta

Hola @eduardo_buitr , estoy en SQL y a mi me funciona bien, pero cuando voy a crear una view me da error, me podrías decir los comandos anteriores a la ;with para poder crearla? Gracias anticipadas.

1 me gusta

Hola @eduardo_buitr mira el error que me esta saliendo

1). [SAP AG][LIBODBCHDB32 DLL][HDBODBC32] Syntax error or access violation;257 sql syntax error: incorrect syntax near "with": line 1 col 2  '' (ECM2) (at pos 2)

No se si me puedas colaborar

Hola @Nelson183 este es un ejemplo de una vista con este tipo de tablas, espero te ayude.

create view vista_prueba
as
with tableoinv as (
select cardcode, cardname, docnum, docentry from oinv
)

select * from tableoinv
go

Estas omitiendo algun simbolo o caracter, es un WITH basico…