Ich habe eine Tabelle mit mehreren Spalten, die sowohl Monat als auch Jahr enthält. Ich versuche anhand von column1, column2 zu identifizieren, was der größte Monat und das beste Jahr ist.Max Wert basierend auf zwei Spalten
Ich habe eine DDL für eine Testtabelle als solche.
CREATE TABLE "TEST"
( "COLUMN1" VARCHAR2(6 BYTE),
"COLUMN2" VARCHAR2(6 BYTE),
"YEAR" NUMBER,
"MONTH" NUMBER
);
Dies sind die Daten in der Beispieltabelle.
REM INSERTING into TEST
SET DEFINE OFF;
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',11,4);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',14,3);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',11,5);
Insert into TEST (COLUMN1,COLUMN2,YEAR,MONTH) values ('A','A',14,1);
Ich möchte den Rekord mit dem maximalen Monat und Jahr erhalten. Wenn ich versuche, den Datensatz abzurufen mit dieser Abfrage
SELECT t.COLUMN1, t.COLUMN2, max(t.YEAR), max(t.MONTH)
FROM TEST t
group by COLUMN1, COLUMN2;
ich dies führt
Es scheint mir, dass es die max Jahr und max Monat unabhängig von den anderen Spalten trennt. Das erwartete Ergebnis sollte
sein, wie kann ich nach unten auf die entsprechenden Ergebnisse zu erzielen? Ich habe mehrere Self-Joins vergeblich versucht.
Darf ich fragen, warum Sie den Monat und das Jahr in getrennten Spalten speichern? –
@Tim ERP-Lösung, nicht mein Design – Miguel