2016-05-20 12 views
-1

Ich habe Tabelle mit Rechnung in Oracle-Datenbank. Ich muss die Spalte invoice_id aus der Rechnung in 3 Spalten nach data_creation auswählen.Rechnung in 3 Spalten anzeigen

Ergebnis sollte wie sein unter

invoie_id invoie_id invoie_id 
1   2   3 
4   5   6 
... 
+0

können Sie Ihre Daten zeigen, und was Sie bisher versucht bitte – davegreen100

+0

Doppelselbst äußere Verknüpfung, Modulo 3 in where-Klausel. – jarlh

+0

Was ist, wenn es eine Lücke gibt, z.B. nein invoice_id 4? – jarlh

Antwort

0

Sie dies tun können rownum & Inline-Ansicht der gleichen Spalte, indem Sie sie in Spalten aufgeteilt. Dann müssen Sie mitmachen. Ihre Anfrage wird wie sein

select g.empno, f.empno from (select e.empno from emp e 
where rownum < 3 or rownum >2)f, emp g 
where g.empno = f.empno 
and rownum < 3 

Dies ist nur eine Richtung für Sie nicht die genaue Antwort. Sie können Ihre Logik von hier aus erstellen.

0

Ok ich von mir selbst gefunden

select * 
from (
SELECT invoice_id, 
     LEAD (invoice_id,1) OVER (ORDER BY invoice_date) AS next_invoice , 
     LEAD (invoice_id,2) OVER (ORDER BY invoice_date) AS next_invoice2 
FROM invoice ORDER BY invoice_date) 
where mod(rownum,3) = 0