2016-10-19 3 views
-2

I mit folgenden Struktur eine TabelleDatum Differenz zwischen aufeinander folgenden Reihen

RetailerCode Orderdate 
1001   01-JUL-16 
1001   04-JUL-16 
1001   06-JUL-16 

mag ich diese Ausgabe

1001  10/9/2011 - 12/9/2011  2 days 
1001  12/9/2011 - 20/9/2011  8 days 
1001  20/9/2011     NA 
+0

Ihre Beispieldaten doesn habe keinen 'RetailerCode' von 1001. Ich vermute, das ist es, was die erste Zeile Ihrer Ausgabe darstellen soll. Wie kommen Sie also von den Beispieldaten zur erwarteten Ausgabe? –

+0

Ihr Beispiel hat Daten im Juli, aber im September. Können Sie die Frage bitte bearbeiten, um Ihre Bedürfnisse besser zu erklären? – Aleksej

Antwort

1

Es s sieht aus wie einfache Analitic Funktionen

select RetailerCode, tO_char(Orderdate,'DD/mm/YYYY')||nvl2(next_Orderdate,' - '||tO_char(next_Orderdate,'DD/mm/YYYY'),'') Orderdate_diff, nvl(to_char(next_Orderdate - Orderdate),'NA') count_days from 
(select RetailerCode, Orderdate, 
         lead(Orderdate) over (partition by RetailerCode order by Orderdate) next_Orderdate from YOUR_TABLE 
) 
+0

Haben Sie es versucht? Ich glaube, das wird einen Fehler geben – Aleksej

+0

danke @Aleksej. Vergessen Sie 'to_char' –

+0

thnk Ihre Arbeit – kumarh

Verwandte Themen