Ich habe eine Tabelle mit vielen Arten von Sequenzen. Zum Beispiel:Sequenz identifizieren und danach handeln
ID G_Ind Amount rnk_date
1 1 50 1
1 0 100 2
1 0 50 3
1 1 100 4
2 0 50 1
2 1 100 2
2 0 50 3
2 1 100 4
3 0 50 1
3 1 100 2
3 1 50 3
3 0 100 4
4 0 100 1
4 1 50 2
4 1 100 3
5 1 50 1
5 1 100 2
5 0 50 3
5 0 100 4
5 1 50 5
5 1 100 6
And my desired output is :
ID G_ind Amount rnk_date rank_date_internal_forIndG Amount_To_Take
1 1 50 1 1 0
1 0 100 2 NULL 100
1 0 50 3 NULL 50
1 1 100 4 2 100
--------------------------------------------------------------------
2 0 50 1 NULL 50
2 1 100 2 1 0
2 0 50 3 NULL 50
2 1 100 4 2 100
-------------------------------------------------------------------
3 0 50 1 NULL 50
3 1 100 2 1 0
3 1 50 3 2 50
3 0 100 4 NULL 100
-------------------------------------------------------------------
4 0 100 1 NULL 100
4 1 50 2 1 0
4 1 100 3 2 100
-------------------------------------------------------------------
5 1 50 1 1 0
5 1 100 2 2 0
5 0 50 3 NULL 50
5 0 100 4 NULL 100
5 1 50 5 3 50
5 1 100 6 4 100
--------------------------------------------------------------------
Ich habe bereits die die vier ersten Spalten gebaut und ich versuche, die „Amount_To_Take“ zu berechnen.
hoffen, dass es nicht zu kompliziert zu erklären, aber ich werde versuchen:
In Id = 1 die Amount_To_Take ist 0, wobei G_Ind = 1 zum ersten Mal.
* In allen Fällen ohne Ausnahme wenn G_Ind = 1 zum ersten Mal (nach internen rank_date habe ich hinzugefügt - rank_date_internal_forIndG) Wir werden Null in der Amount_To_Take setzen.
Mein Problem ist, wenn die rank_date_internal_forIndG = 2. Id - 1,2,3,4 wir die amout zusammenzufassen gehen und es auf dem Amount_To_Take zu setzen, so dass es einfach:
case when rank_date_internal_forIndG = 2 and G_Ind = 1 then 0
aber im Fall Wenn ID 5 ist, sind wir nicht, weil es nicht der letzte ist.
Das sind derzeit alle meine Optionen, also denken Sie nicht an den Rest der Kombinationen. gerne Vorschläge hier, wie man mit diesem (Fall, wenn ID = 5 und die diffrence zwischen den beiden anderen vier) zu bewältigen