2017-02-03 3 views
0

Ich arbeite an einer Geschichte Handhabung Problem. Ich schreibe eine Abfrage, um die falschen Einträge für das Startdatum zu aktualisieren. Die Daten in der Tabelle ist wie folgt:Analytische Funktion Ausgabe

Subs_is subs_cd  number start_dt end_dt 
ABC 100 7854 10/8/2015 3/9/2015 
ABC 100 58742 10/9/2015 20/09/2015 
ABC 100 1278 23/09/2015 30/09/2015 
ABC 100 4785 15/10/2015 25/10/2015 

ich die start_date will vorherige Zeilen end_date sein, wenn die Zahl ändert.

kann mir bitte jemand dabei helfen.

Grüßen, Amit

Antwort

3

scheint ein einfaches LAG zu sein (was nicht in Teradata implementiert ist, aber einfach zu umschreiben):

-- lag(start_date) -- not implemented 
-- over (partition by Subs_is, subs_cd 
--  order by start_dt 

-- previous row's value 
max(start_dt) 
over (partition by Subs_is, subs_cd 
     order by start_dt 
     rows between 1 preceding and 1 preceding) 
+0

Dank Dnoeth !! – user3901666