on 11-12-2020 9:09 AM
Hi all,
I am trying to split a single row into multiple rows based upon a specific number value.
For example, having a Document Line with "Quantity"=37 while OITM."SalPackUn"=10 I should obtain 4 SQL rows:
"ItemCode", 10
"ItemCode", 10
"ItemCode", 10
"ItemCode", 7
Is it possible to obtain this in Hana as it could be in Oracle or other dbms?
Thanks in advance.
Well, here is how I solved it, in case it may be useful to anyone.
Obviously, change T0."DocEntry" and T0."LineNum" in WHERE clause.
SELECT Q2.GENERATED_PERIOD_START as "Package N°",
CASE WHEN ( Q1."Quantity" - (Q2.GENERATED_PERIOD_START-1) * Q1."SalPackUn") < Q1."SalPackUn"
THEN
(Q1."Quantity"- (Q2.GENERATED_PERIOD_START-1) * Q1."SalPackUn")
ELSE
Q1."SalPackUn"
END AS "PackageQty",
Q1.*
FROM
( SELECT T0."DocEntry", T0."Quantity", T1."SalPackUn",
CASE WHEN T1."SalPackUn" <> 0 THEN ROUND( T0."Quantity" / T1."SalPackUn",0, ROUND_UP) ELSE T0."Quantity" END AS "MaxPackages",
T1."ItemCode", T1."ItemName"
FROM "RDR1" T0 INNER JOIN OITM T1 ON T0."ItemCode" = T1."ItemCode"
WHERE T0."DocEntry"= 13151 AND T0."LineNum" =0
) Q1
INNER JOIN
( SELECT GENERATED_PERIOD_START FROM SERIES_GENERATE_INTEGER(1,1,10001)) Q2 ON Q1."MaxPackages" >= Q2.GENERATED_PERIOD_START
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
79 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.