Verständnisfrage bedingter Ausdruck

tdbmotor

Neuer Benutzer
Beiträge
1
Hi,

hab ne Tabelle die z.B. folgendermaßen ausschaut:

Mitarbeiter Projekt Arbeitszeit
1 --------------- 1 --------------- 5
1 --------------- 2 --------------- 4
2 --------------- 1 --------------- 3
3 --------------- 1 --------------- 5

Ich möchte nun bei meinem SELECT STATEMENT für jeden Mitarbeiter,
  • wenn er an beiden Projekten gearbeitet hat (beispiel oben mitarbeiter=1), nur die Zeile mit Projekt=2 verwenden
  • wenn ein Mitarbeiter jedoch keine Zeile mit Projekt=2 besitzt, soll die Zeile mit Projekt=1 verwendet werden.
Die Ausgabe sollte also so sein:
Mitarbeiter Projekt Arbeitszeit
1 --------------- 2 --------------- 4
2 --------------- 1 --------------- 3
3 --------------- 1 --------------- 5

Denke doch, das lässt sich mit bedingten Ausdrücken lösen, bin darin jedoch nicht so fit...

Hier mal mein Anfang:

SELECT mitarbeiter,projekt,arbeitszeit FROM test_projekte

Gruß und vielen Dank
tdb
 
Werbung:

Ich bin mir nicht sicher über Deine Regel, welches Projekt genommen werden soll, Wenn mein Vermutung stimmt und je Mitarbeiter das Projekt mit der höchsten Nummer, dann so:

Code:
test=*# select * from tdbmotor ;
 mitarbeiter | projekt | arbeitszeit
-------------+---------+-------------
  1 |  2 |  4
  2 |  1 |  3
  3 |  1 |  5
  1 |  1 |  5
(4 rows)

Time: 0,152 ms
test=*# select distinct on (mitarbeiter) mitarbeiter, projekt, arbeitszeit from tdbmotor order by mitarbeiter, projekt desc;
 mitarbeiter | projekt | arbeitszeit
-------------+---------+-------------
  1 |  2 |  4
  2 |  1 |  3
  3 |  1 |  5
(3 rows)
 
Werbung:
Zurück
Oben