Skip to content
Advertisement

how to aggregate data based on condition

I would like to calculate the open quantity per item via comparing the creation and issue date in SQL , if the issue date is less than creation date on other rows for same item, quantity should be added to the open quantity

for example row 3 has open quantity 3 because item a created on 11.01.2021 and at that time only row 2 with issue date 12.02.2021 is still open. Row 1 is not added to open quantity in row 3 because it is already issued on 10.01.2021 .
for the 6th row for item b, row 4 and row 5 are not issued on the creation date of row 6 (14.02.2021) therefore open quantity is 2+3 (row 4 qty+ row 5 qty) .

I know it is not correct but if it would be possible I would add a code as below.

item creation date issue date qty open quantity
a 05.01.2021 10.01.2021 2 0
a 07.01.2021 12.02.2021 3 2
a 11.01.2021 12.02.2021 4 3
b 05.01.2021 10.05.2021 2 0
b 11.01.2021 12.05.2021 3 2
b 14.02.2021 15.02.2021 4 2+3 = 5

Advertisement

Answer

Following solution will only work for Oracle database. Hope it will inspire you for HANA.

Your sample data

  • First, Within row_numbered_tab view, I numbered all the rows per ITEM (row_number function), and I count all the previous rows per every row
  • Second, for each row, I generate as many rows as it has prev_count_rows
  • Then, I am able to implement your logic through views t and tt

demo

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement