SQL-Abfrage filtern mittels Werten aus verschiedenen Dropdownlisten

Maximus

Erfahrenes Mitglied
Hallo,

ich habe folgende SQL-Anweisung in einer Stored Procedure gespeichert:

ALTER PROCEDURE dbo.ErmittelSpiele
AS
SELECT A.spiel_id, A.spieltag_id, B.mannschafts_logo_mini, B.mannschafts_name, C.mannschafts_logo_mini, C.mannschafts_name, D.spieltag_datum, D.spieltag_name, D.spieltag_id
FROM Spiele A, Mannschaften B, Mannschaften C, Spieltage D
WHERE A.mannschaft_a = B.mannschafts_id AND A.mannschaft_b = C.mannschafts_id AND A.spieltag_id = D.spieltag_id;

Das Ergebnis lasse ich in einem Gridview anzeigen.
Nun möchte ich noch 3 DropDown-Boxen (Spieltag, Heim-Team und GastTeam) hinzufügen, die die Ergebnismenge der SELECT-Anweisung weiter einschränkt.

Beispiel: Zuerst werden alle Spiele angezeigt, wenn ich bei Spieltag auf "Spieltag 1" klicke, sollen nur die Spiele angezeigt werden, die am 1. Spieltag stattfinden.
Wie bekomme ich das alles in eine SELECT-Anweisung?

Danke für Eure Hilfe!
Gruß
Maximus
 

Norbert Eder

Erfahrenes Mitglied
Ich würde dies NICHT in eine einzige Select-Abfrage stopfen, da du im Grunde ja mit allen Combo-Boxen einschränkst. Bei deiner Variante müsstest du zuvor ALLE notwendigen Daten laden und vorhalten. Hast damit auch einen entsprechenden Speicherverbrauch und daraus resultierende Performance-Verluste.

Daher eher die notwendigen Daten für die erste ComboBox auslesen, User auswählen lassen und danach erst die zweite Befüllen.

Natürlich hängt dies auch von der Anzahl der Daten ab die da ausgelesen werden müssen. Wenn sich dies auf nur jeweils ein paar Auswahlmöglichkeiten beschränkt, musst du einfach deine WHERE Klausel entsprechend anpassen.