Einige Hilfe bitte? Nur ein Anfänger begann hier zu lernen, wie man SQL schreibt und lief auf dieses Problem ein. Ich weiß, wie man die MAX
Funktion benutzt, aber ich kann nicht herausfinden, wie man alle diese Anforderungen zusammenschließt. Ich habe zwei Tabellen, Accounts
und Books
(unten ist ein Beispiel der Daten)SQL Oracle mit Verbindungstabellen und Max Funktionen
Accounts
ID Series YesorNot Dated Filed Plan Year
1 123 Yes 06/12/2015 2015
2 123 No 06/12/2015 2015
3 145 Yes 06/06/2015 2015
4 145 No 02/02/2015 2014
5 198 Yes 02/03/2015 2015
6 187 Yes 02/14/2013 2013
7 153 Yes 01/02/2011 2011
Books
Primary Key Date Created ID
1 06/13/2015 123
2 06/12/2015 123
3 06/07/2015 145
4 02/02/2015 145
5 02/03/2015 198
Zwei Tische: Accounts
und Books
der Suche nach:
1. Daten, die von der Projekt-ID in beiden Tabellen vorhanden = Primärschlüssel
2. Ich möchte nur eine eindeutige Serie (Serie auch = ID)
3. Ich möchte den MAX
(neuesten) Wert von Plan Year, und dann, wenn es Duplikate für Plan Year, brauche ich die MAX
(letzten) Wert des Erstellungsdatums.
4. Ich brauche nur die Spalten Project ID
, Series
, YesorNot
, Date Filed
, Plan Year
so sollte meine Ausgabe wie folgt sein:
Project ID Series YesorNot Dated Filed Plan Year
1 123 Yes 06/12/2015 2015
3 145 Yes 06/06/2015 2015
4 145 No 02/02/2015 2014
5 198 Yes 02/03/2015 2015
Dies ist schwierig (aufgrund der Bedingung 3), ohne Sätze von temporären Tabellen zu erstellen und möglicherweise mit ein paar Ausgaben. Wenn YesOrNot = Nein bedeutet dies immer mehrere Zeilen für die gleiche Serie in Konten mit demselben Planjahr? –
Was meinen Sie mit "Daten, die in beiden Tabellen durch die Projekt-ID = Primärschlüssel vorhanden sind"? Was ist eine Projekt-ID? Dann - sind die beiden Tabellen nicht durch Serien in der ersten Tabelle und ID in der zweiten Tabelle abgestimmt? Ich hoffe, Sie haben keine Tabellen, die von mehr als einem Spaltenpaar "angepasst" sind! – mathguy
@BenHamilton - kennen Sie analytische Funktionen? – mathguy