2017-09-07 1 views
0

ich zwei Tabellen, die die l_nm hat, wo lst_id ist 22 Daten wieEinige Case-Anweisung Ausgabe

tabelle1

Id id_nm 
1 per 
2 per 
3 org 

table2

Id Lst_id l_nm up_dt 
1 22 abc 9/10/2015 
1 21 abs 10/12/2016 
2 21 xzc 10/12/2013 
2 23 xyz 10/21/2013 
2 23 xnh 01/12/2013 

benötigen holen Wenn das nicht vorhanden ist, dann müssen wir die l_nm mit dem neuesten aktualisierten Datum auswählen.

Id lst_id lnm up_dt 
1 22 abc 9/10/2015 
2 23 xyz 10/21/2013 

kann mir bitte helfen, es zu implementieren.

+0

Bitte zeigen Sie uns Ihre gespeicherte Prozedur –

+0

Wie für ID1 ich habe zwei Einträge in Tabelle2 ich habe nur diejenigen füllen Werte, die lst_id als 22 haben. Aber für Id 2 habe ich lst_is nicht als 22, also habe ich diplay Daten, die max up_dt hat. und müssen Sie die Tabelle1 mit Tabelle 2 verbinden, um alle Daten zu erhalten. Ich habe es mit der Erstellung verschiedener Blöcke auch versucht und es funktioniert. Aber ich will etwas, das in einem Block getan werden kann. – Jig232

+0

Ich habe keine Prozedur. – Jig232

Antwort

0

einfache Art und Weise ist mit einem Fenster-Klausel zu verwenden row_number, um eine benutzerdefinierte Sortierreihenfolge zu erzeugen:

select id, lst_id, l_nm as lnm, up_dt 
from (
    select id 
     ,lst_id 
     ,l_nm 
     ,up_dt 
     ,row_number() 
     over (partition by id 
       order by case when lst_id = 22 then 1 else 2 end 
         ,up_dt desc) as rn  
    from table2 
) where rn = 1; 
+0

Ich habe das versucht, aber es funktioniert nicht so wie ich beides möchte. – Jig232

+0

'erstellen oder ersetzen Sie die Ansicht test_mv (id, ID_nm, lst_id, l_nm, up_dt) als Wählen Sie vw.id, vw.t1b, vw.t2b, vw.l_nm, vw.up_dt aus (wählen Sie t1.id, t1. id_nm t1b, t2.id_nm t2b, t2.l_nm, t2.up_dt, row_number() über (Partition von t2.id von Fall zu Fall, wenn t2.lst_id = 22 dann 1 else 2 Ende, t2.up_dt desc) rn von table1 t1, table2 t2 wobei t1.id = t2.id ) vw wobei vw.rn = 1; ; ' –

+0

@ Jig232 was meinst du" nicht funktioniert "? Welches Ergebnis hast du bekommen? –

Verwandte Themen