Auf Thema antworten

Hallo zusammen, ich möchte eine Abfrage machen bei der ich verdammich nicht weiter komme.

Aus einer Tabelle mit Datum und eingepflegte Position möchte ich die Personen rausziehen, die bestimmte Positionen innehaben. Zum Beispiel:


Tabelle Einsatz

NamePosition
HansDönerbude
JürgenPommesstand
WalterSchnitzelbar


Ich ziehe hier die Leute für den Tag raus, die in der Dönerbude oder im Pommesstand arbeiten.

Nun möchte ich aus einer weiteren Tabelle die Skilllevel dieser Personen rausziehen und mir mögliche Kombinationen anschauen. Die andere Tabelle sieht dann zB wie folgt aus:


Tabelle Skill

NameFähigkeitLevel
HansDöner3
HansPommes4
HansSchnitzel2
JürgenDöner2
JürgenPommes5
JürgenSchnitzel4
WalterSchnitzel3


Jetzt habe ich zum Beispiel folgenden Code:

SELECT DISTINCT

    SUM(Case when (Skl.Fähigkeit = 'Döner and Skl.Level > 2) and (Skl.Fähigkeit = 'Pommes' and Skl.Level <= 2) and (Skl.Fähigkeit = 'Schnitzel' and Skl.Level <= 2) Then 1 Else 0 End) as Döner

    SUM(Case when (Skl.Fähigkeit = 'Döner and Skl.Level > 2) and (Skl.Fähigkeit = 'Pommes' and Skl.Level > 2) and (Skl.Fähigkeit = 'Schnitzel' and Skl.Level <= 2)Then 1 Else 0 End) as Döner/Pommes

    SUM(Case when (Skl.Fähigkeit = 'Döner and Skl.Level > 2) and (Skl.Fähigkeit = 'Pommes' and Skl.Level <= 2) and (Skl.Fähigkeit = 'Schnitzel' and Skl.Level > 2) Then 1 Else 0 End) as Döner/Schnitzel

    SUM(Case when (Skl.Fähigkeit = 'Döner and Skl.Level <= 2) and (Skl.Fähigkeit = 'Pommes' and Skl.Level > 2) and (Skl.Fähigkeit = 'Schnitzel' and Skl.Level > 2) Then 1 Else 0 End) as Pommes/Schnitzel

    SUM(Case when (Skl.Fähigkeit = 'Döner and Skl.Level > 2) and (Skl.Fähigkeit = 'Pommes' and Skl.Level > 2) and (Skl.Fähigkeit = 'Schnitzel' and Skl.Level > 2) Then 1 Else 0 End) as Döner/Pommes/Schnitzel

    FROM Einsatz as Eins

    LEFT JOIN Skill as Skl ON Eins.Name = Skl.Name

  WHERE Eins.Position LIKE 'Dönerbude' OR Eins.Position LIKE 'Pommesstand'

 

Ziel wäre dann eine Tabelle zu haben, die so aussieht


DönerDöner/PommesDöner/SchnitzelPommes/SchnitzelDöner/Pommes/Schnitzel
01010


Hier wurden jeztt nur Jürgen und Hans berücksichtigt und ihre Skills nach den folgenden Kombinationen geschaut.

Funktioniert aber nicht. Ich vermute, dass es an der Case when liegt, die keine mehrere Zeilen anschauen kann und als AND kombinieren kann. Anderes Problem ist natürlich auch, dass meine richtige Tabelle viel größer ist und aus viel mehr Positionenen und Fähigkeiten besteht.

Ich müsste das iwie dynamisch gestalten, wofür mir das Know-How fehlt.

Hat jemand eine einfache Idee?


Zurück
Oben