Mein Fall, wenn Aussage scheint falsch zu sein und ich kann nicht herausfinden, was falsch ist. Es gibt mir die gleichen Daten für die Zeit für die Erstellung und für die Aktualisierung der Zeit. hier ist, wie meine Daten aussieht:Fall Wenn Aussage mit Daten
T1:
ID create_time
1 08/09/2016 07:30:20AM
T2:
ID update_time
1
1 08/15/2016 09:41:46AM
Ich erwarte folgende:
ID TimeStamp
1 08/09/2016 07:30:20AM
1 08/15/2016 09:41:46AM
aber mein Code gibt Werte für erstellen Zeiten für die 2 Datensätze. es sieht wie folgt aus:
ID TimeStamp
1 08/09/2016 07:30:20AM
1 08/09/2016 07:30:20AM
select t1.id, t1.desc,
Case
WHEN t1.create_time IS NOT NULL
THEN t1.create_time
WHEN t2.update_time IS NOT NULL
THEN t2.update_time
END AS "TimeStamp"
from t1, t2
where t1.id=t2.id
AND (t1.create_time BETWEEN TO_DATE ('01-AUG-2016 00:00:00',
'dd-mon-yyyy HH24:Mi:SS')
AND TO_DATE ('31-AUG-2016 23:59:59',
'dd-mon-yyyy HH24:Mi:SS')
OR ( t2.update_time
BETWEEN TO_DATE ('01-AUG-2016 00:00:00',
'dd-mon-yyyy HH24:Mi:SS')
AND TO_DATE ('31-AUG-2016 23:59:59',
'dd-mon-yyyy HH24:Mi:SS')
)
)
Ich muss auch auf dem erstellen/aktualisieren Zeit als New/Update in einer separaten Spalte basierend jeden Datensatz markieren. Ich war dies mit Fall tun, wenn, wie unten:
CASE
WHEN (t1.create_time IS NOT NULL AND t2.update_time IS NULL)
THEN 'New'
WHEN t2.update_time IS NOT NULL
THEN 'Update'
END AS "Type"
aber dies bringt Duplikate zu sein scheint wie folgt:
ID Timestamp Typ
1 2016.08.09 New
1 2016.08.09-Update
1 2016.08.15 New
1 2016.08.15 Update-
Sie wissen, dass es Fälle gibt, wenn alte Oracle-Syntax für Joins nicht vermieden werden kann ... zum Beispiel ein Fehler in der Implementierung von REFRESH FAST für materialisierte Ansichten schnell erfrischende verhindert, wenn die Abfrage die Ansicht erstellen enthält ANSI verbindet. Seit ich das gelernt habe, sage ich "in den meisten Fällen" statt "immer". :-) – mathguy