Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8372

SAP HANA Query with Sub-Queries

$
0
0

Hallo,

 

some Queries are not runable in the query manager within SAP Business One, version for HANA, especially when you are using sub-queries and input parameters.

 

Here is an example (Query1):

 

SELECT T0."DocEntry", T0."DocNum", T0."TaxDate", T0."CardCode",    (SELECT "BaseRef"    FROM INV1 T2    WHERE T2."DocEntry" = T0."DocEntry" AND T2."LineNum" = '0') AS "Referenz",    T0."CardName" || ' ' || IFNULL(T1."CardFName", n'') AS "CardName",    CASE        WHEN (T0.CANCELED = 'C') THEN (-1) * T0."DocTotal"        ELSE T0."DocTotal"    END AS "DocTotal",    CASE        WHEN (T0.CANCELED = 'C') THEN (-1) * T0."TotalExpns"        ELSE T0."TotalExpns"    END AS "Fracht", T0."DocDueDate", T0."DocDate", T0."ObjType",    CASE        WHEN (T0.CANCELED = 'C') THEN 'VRE-ST/'        ELSE 'VRE/'    END AS "Präfix",    CASE        WHEN (T0.CANCELED = 'C') THEN 'Storno zu RE '        ELSE ' '    END AS "Text1",    CASE        WHEN (T0.CANCELED = 'C') THEN        (SELECT "BaseRef"        FROM INV1 T2        WHERE T2."DocEntry" = T0."DocEntry" AND T2."LineNum" = '0')        ELSE ' '    END AS "Text2",    CASE        WHEN (T0.CANCELED = 'C') THEN T0."JrnlMemo"        ELSE ' '    END AS "Bemerkung"
FROM OINV T0    INNER JOIN OCRD T1 ON T1."CardCode" = T0."CardCode"
WHERE T0."DocDate" BETWEEN '[%Date01]' AND '[%Date02]'

 

There are two sub-queries, one on the second line and on the line 24th line.

When I am running this query it shows me this error:

img_235.png

 

When I remove the sub-queries I can run this query.

It looks like this than (Query2):

 

SELECT T0."DocEntry", T0."DocNum", T0."TaxDate", T0."CardCode",    T0."CardName" || ' ' || IFNULL(T1."CardFName", n'') AS "CardName",    CASE        WHEN (T0.CANCELED = 'C') THEN (-1) * T0."DocTotal"        ELSE T0."DocTotal"    END AS "DocTotal",    CASE        WHEN (T0.CANCELED = 'C') THEN (-1) * T0."TotalExpns"        ELSE T0."TotalExpns"    END AS "Fracht", T0."DocDueDate", T0."DocDate", T0."ObjType",    CASE        WHEN (T0.CANCELED = 'C') THEN 'VRE-ST/'        ELSE 'VRE/'    END AS "Präfix",    CASE        WHEN (T0.CANCELED = 'C') THEN 'Storno zu RE '        ELSE ' '    END AS "Text1",    CASE        WHEN (T0.CANCELED = 'C') THEN T0."JrnlMemo"        ELSE ' '    END AS "Bemerkung"
FROM OINV T0    INNER JOIN OCRD T1 ON T1."CardCode" = T0."CardCode"
WHERE T0."DocDate" BETWEEN '[%Date01]' AND '[%Date02]'

 

 

The error above occurs, when the sub-query refers a column from the main-query.

(Example from Query1 Line 2)

SELECT "BaseRef"    FROM INV1 T2    WHERE T2."DocEntry" = T0."DocEntry" AND T2."LineNum" = '0'

In the "where"-clause is an comparison "T2."DocEntry" = T0."DocEntry". When such a comparison (subquery.column = mainquery.column) is presented in the query you can't run tit in Query-Manager within SAP Business One, Version for HANA.

 

 

Did someone has the same error and/or problem?

Can someone provide an workaround to make this query runable?

 

Thank!


Viewing all articles
Browse latest Browse all 8372

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>