Einzelnen Beitrag anzeigen

Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Denkfehler bei SQL SELECT Abrage

  Alt 19. Okt 2017, 11:17
Du Suchst in deinem SQL
SQL-Code:
SELECT mitarbeiter.name FROM
mitarbeiter, zuordnung WHERE
mitarbeiter.ID = zuordnung.MitarbeiterID AND
((zuordnung.QualifikationsID = 1 AND zuordnung.Auspraegung >= 1) AND
(zuordnung.QualifikationsID = 2 AND zuordnung.Auspraegung >= 3))
Nach einem Mitarbeiter, welcher (QualifikationsID 1 und Auspraegung >= 1) hat. Desweiteren Fragst du auch noch ab ob dieser Mitarbeiter (QualifikationsID 2 und Auspraegung >=3) hat durch das AND hinter der ersten Klammer. Ein Datensatz kann aber in einem Feld (QualifikationsID) nicht gleichzeitig 1 und 2 stehen haben. Hierdurch ist das ergebnis immer 0. wenn du das AND hinter der ersten Klammer durch ein OR ersetzt, ist die Frage nach einem Mitarbeiter mit (QualifikationsID 1 und Auspraegung >= 1) oder (QualifikationsID 2 und Auspraegung >=3). Das dürfte das Gewünschte ergebnis liefern.
SQL-Code:
SELECT mitarbeiter.name FROM
mitarbeiter, zuordnung WHERE
mitarbeiter.ID = zuordnung.MitarbeiterID AND
((zuordnung.QualifikationsID = 1 AND zuordnung.Auspraegung >= 1) OR
(zuordnung.QualifikationsID = 2 AND zuordnung.Auspraegung >= 3))
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat