Ich habe Tabelle wie dieWie wähle ich die ersten beiden Zeilen jeder Gruppe aus und zähle die Differenz zwischen ihnen in einer Spalte?
ID_WE ID_B ID_WO RDATA RSIZE
11111 22 1 1998-10-01 14
11111 22 2 1998-09-30 17
11111 23 1 1998-10-01 23
11112 22 1 1998-09-30 14
ID_WE
, ID_B
und ID_WO
zusammen Primärschlüssel sind. Für jede Kombination id-wir, id_b gibt es wenige ID_WO
. Jeder ID_WO
haben viel liest, Informationen über liest in RDATA
und RSIZE
Ich brauche Tisch zu holen, wie die
ID_WE ID_B ID_WO DAYS DIF
11111 22 1 1 0
DIF
ist der Unterschied in RSIZE
zwischen zwei zuletzt für gegebene ID_WO
liest, DAYS
ist Wie viele Tage sind zwischen zwei letzten Lesezeiten verstrichen
Es braucht wahrscheinlich eine Gruppe von und vielleicht max (rdata), um die Differenz in Tagen und Größe zu zählen. Ich bin wirklich verloren, wie man so ein Ergebnis bekommt. Ich werde alle Tipps schätzen, wie Sie die gewünschten Ergebnisse erhalten.
ID_WE und ID_B zusammen können nicht der Primärschlüssel sein, da es solche Duplikate gibt. – jarlh
Welche Firebird Version? Mit Firebird 3 ist es wahrscheinlich einfacher als mit früheren Versionen. BTW: Ich verstehe die Beispieldaten nicht, warum "DAYS" einen Wert von 780 und "DIF" einen Wert von 6 haben. –
@Mark Rotteveel- Fierbird 2.1, und du hast recht, es sollte 1 Tag und sein 0 dif – Majlena