2 Stimmen

Max und Min in der gleichen Tabelle

Angenommen, ich habe die folgende Tabelle:

id      flag      date
 1         1      2012-01-01
 2         1      2012-02-01
 3         1      2012-03-01
 4         0      2012-04-01
 5         0      2012-05-01
 6         0      2012-06-01

Gibt es eine Möglichkeit, das maximale Datum für Zeilen mit dem Kennzeichen 1 und Mindestdatum für Zeile mit Flag als 0 dieselbe Abfrage verwenden?

Bearbeitet: Ich möchte, dass das Ergebnis in etwa so aussieht:

max           min
2012-03-01    2012-04-01

Ich danke Ihnen.

3voto

Adriaan Stander Punkte 155899

Sie können etwas versuchen wie

SELECT  MAX(CASE WHEN FLAG = 1 THEN Date ELSE NULL END) MaxFlag1,
        MIN(CASE WHEN FLAG = 0 THEN Date ELSE NULL END) MinFlag0
FROM    [Table]

1voto

juergen d Punkte 194549

Essayer

select flag,
       case when flag = 1 then max([date])
            when flag = 0 then min([date])
       end as date
from your_table
group by flag

0voto

Lieven Keersmaekers Punkte 55277

Sie können eine UNION (ALL) um die Ergebnisse von zwei Aussagen zu kombinieren. Die einzige Einschränkung für diese Anweisungen ist, dass sie beide den gleichen Betrag und den gleichen Typ von Spalten zurückgeben.

Auf Ihr Beispiel angewandt, würde dies bedeuten

SELECT MAX(date) FROM YourTable WHERE flag = 1
UNION ALL SELECT MIN(date) FROM YourTable WHERE flag = 0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X