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

SAP HANA Abfrgen mit Subqueries

$
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 2756

Trending Articles



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