AND, OR Abfrage Schachteln... Geht das?

okanog

Neuer Benutzer
Beiträge
3
Hallo zusammen.

Es ist ein wenig schwierig mein Problem in Worte zu fassen aber versuche mein bestes. Stellt mir gerne Fragen bei Unklarheiten.

ich habe mehrere Listboxen indem ich werte auswählen kann und so kann der Endbenutzer eine individuelle Datenbankabfrage starten. Alle Listboxen haben einen "Leer" Eintrag, wird dieser selektiert, wird automatisch ein %-Symbol im Hintergrund für "Leer" eingesetzt und alle Einträge in dieser Spalte werden ausgewählt. Das funktioniert soweit super.

Aber ich habe ein Listbox mit Namen der Mitarbeiter drin. Wird ein Name gewählt, werden mehrere Spalten wie beispielsweise Hauptverantwortlicher, Stellvertreter, Wissensträger usw. durchsucht.
Die sache ist nun folgendes: Ich kann den Oberen teil mit AND-Operatoren in einer Where Klausel abfragen, aber wenn ich den unteren Teil auch mit AND-Operator abfrage, müsste der gleiche Name im Hauptverantwortlicher, Stellvertreter, Wissensträger usw. eingetragen sein, dies ist jedoch logischerweise nicht der Fall.

Ich müsste theoretisch einen oberen "Schachtel" haben, in diesem frage ich mehrere Listboxen mit einem AND-Operator ab. Zusätzlich bräuchte ich für die Namen und deren Funktion einen unteren "Schachtel" dieser durchsucht dann mit einem OR-Operator die zuständigen Spalten, und die beiden "Schachtel" müsste ich wiederum mit einem AND-Operator in der mitte verknüpfen.

Kennt jemand das Phänomen und kann mir helfen?
Bin für jeden doch so kleinen Tipp dankbar.

Mein Code:


WHERE
## Der theoretische erste Schachtel
system_systemnummer.Systemnummer_ID LIKE '$eingabe_systemnummer'
AND
hardware_domaene.domaene_ID LIKE '$eingabe_domaene'
AND
hardware_betriebssystem.betriebssystem_ID LIKE '$eingabe_betriebssystem'
AND
hardware_servername.servername_ID LIKE '$eingabe_servername'
AND
system_systemname.Systemname_ID LIKE '$eingabe_systemname'
AND

## Der theoretische zweite Schachtel | Die Tabellennamen sind Aliasnamen, mein Namenskonzept sollte ich ## mal hinterfragen:/
AA.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
AB.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
A0.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
A1.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
A2.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
A3.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
OR
A4.Verantwortlichkeit_Personen_ID LIKE '$eingabe_verantwortlichkeiten'
";


Freundliche Grüsse

Okanog
 
Werbung:
Hallo @akretschmer

Danke dafür dass du dir die Zeit genommen hast um zu antworten.
In der Tat, ich komme mit meinem Wissen den ich mir bei SQL in dieser kurzer Zeit erarbeitet habe leider nicht weiter.
Hast du vielleicht einen Lösungsvorschlag?

LG

Okanog
 
Werbung:
Nun ja, wie sollen wir helfen?

Was wir wissen:

  • da sind offenbar 12 Tabellen involviert, deren Aufbau wir nicht kennen
  • Du hast offenbar eine Applikation, die dynamisch eine Abfrage generiert
  • Du willst einen Teil der Conditions mit OR verbinden, davon soll eine zutreffen

Was wir nicht wissen:

  • funktioniert die Abfrage ohne alle Where-Conditions?
  • falls nein, welcher Fehler kommt?

Was ich sehe ist, daß um den OR - Teil offenbar eine Klammer fehlt, da ja eine der Bedingungen erfüllt sein soll, oder?
 
Zurück
Oben