Estoy haciendo una consulta en SAP que no funciona, al mostrar un dato que he hecho me falla al poner T0.”CardCode” en
(SELECT T4.“Country” FROM CRD1 T4 WHERE T4.“CardCode” = T0.“CardCode”
ORDER BY T4.“CreateDate” DESC, T4.“CreateTS” DESC
LIMIT 1) AS “País/Región”
En esta consulta
SELECT T0.“DocNum”, T0.“CardCode”, T0.“SlpCode”, T0.“DocTotal” - T0.“VatSum” as “Presupuesto”, T0.“GrosProfSy”, T0.“DocDate”, T0.“U_EXO_FUENTCON”, T1.“ItemCode”, T0.“DocStatus”, T0.“U_EXO_Conf”, T0.“UpdateDate”, T0.“DocTime”, T0.“Comments”, T0.“CntctCode”,
T2.“StreetS”, T2.“BlockS”, T2.“CityS”, T2.“ZipCodeS”, T2.“StateS”, T2.“CountryS”,
T2.“StreetB”, T2.“BlockB”, T2.“CityB”, T2.“ZipCodeB”, T2.“StateB”, T2.“CountryB”, T1.“unitMsr”, T1.“Quantity”, ‘PSG’ AS “sap_empresa”,
(SELECT T4.“ZipCode” FROM CRD1 T4 WHERE T4.“CardCode” = T0.“CardCode”
ORDER BY T4.“CreateDate” DESC, T4.“CreateTS” DESC
LIMIT 1) AS “Código Postal”,
(SELECT T4.“Country” FROM CRD1 T4 WHERE T4.“CardCode” = T0.“CardCode”
ORDER BY T4.“CreateDate” DESC, T4.“CreateTS” DESC
LIMIT 1) AS “País/Región”
FROM OQUT T0
LEFT JOIN QUT1 T1 ON T0.“DocEntry” = T1.“DocEntry”
INNER JOIN QUT12 T2 ON T0.“DocEntry” = T2.“DocEntry”
WHERE
((T0.“DocDate” >= ‘[%1]’ AND T0.“DocDate” <= ‘[%2]’) OR (T0.“UpdateDate” >= ‘[%1]’ AND T0.“UpdateDate” <= ‘[%2]’ AND T0.“DocDate” < T0.“UpdateDate”) )
ORDER BY T0.“DocNum”, T0.“CardCode”, T0.“DocTotal” DESC
De esta otra forma me funciona, pero me muestra los contactos duplicados
SELECT T0.“DocNum”, T0.“CardCode”, T0.“SlpCode”, T0.“DocTotal” - T0.“VatSum” as “Presupuesto”, T0.“GrosProfSy”, T0.“DocDate”, T0.“U_EXO_FUENTCON”, T1.“ItemCode”, T0.“DocStatus”, T0.“U_EXO_Conf”, T0.“UpdateDate”, T0.“DocTime”, T0.“Comments”, T0.“CntctCode”,
T2.“StreetS”, T2.“BlockS”, T2.“CityS”, T2.“ZipCodeS”, T2.“StateS”, T2.“CountryS”,
T2.“StreetB”, T2.“BlockB”, T2.“CityB”, T2.“ZipCodeB”, T2.“StateB”, T2.“CountryB”, T1.“unitMsr”, T1.“Quantity”, ‘PSG’ AS “sap_empresa”, T4.“ZipCode”, T4.“Country”
FROM OQUT T0
LEFT JOIN QUT1 T1 ON T0.“DocEntry” = T1.“DocEntry”
INNER JOIN QUT12 T2 ON T0.“DocEntry” = T2.“DocEntry”
LEFT JOIN CRD1 T4 ON T0.“CardCode” = T4.“CardCode”
WHERE
((T0.“DocDate” >= ‘[%1]’ AND T0.“DocDate” <= ‘[%2]’) OR (T0.“UpdateDate” >= ‘[%1]’ AND T0.“UpdateDate” <= ‘[%2]’ AND T0.“DocDate” < T0.“UpdateDate”) )
ORDER BY T0.“DocNum”, T0.“CardCode”, T0.“DocTotal” desc