hallo,
ich versuche in einer Software, Anzeige Prozeduren mit verschiedenen Fällen, wenn möglich, mit einer SP zu erledigen. Hat zur Folge dass ich in die SP zunächst viele Parameter übergebe, die ich in bestimmten Fällen gar nicht brauche. Im Where-teil schreibe ich dann die Parameter so rein dass auch die richtigen Daten angezeigt werden wenn der Parameter NULL hat.
Bsp.: WHERE projektID = IsNull(@intprojektID,projektID)
Jetzt habe ich einen sonderfall für den ich noch eine Lösung habe. Es geht um Projekte. Ich möchte Projekte bei denen in einem bestimmten Zeitraum gearbeitet wurde. Dieses "gearbeitet" steht in einer anderen Tabelle die auf die projektID per FK verweist. Ich habe es über Subselect im WHERE-Teil versucht WHERE projektID in (select auftrag_projektID from x, y where bea_datum between @start and @ende)
Hier bekomme ich jedoch keinen Treffer in meinen anderen Fällen wenn ich @start @ende sehr groß wähle und noch nicht dran gearbeitet wurde. D.h. das innere SQL hat keinen Treffer und die Projektliste bleibt leer. Ich suche eine Schreibweise für den WHERE-Teil der mir Treffer liefert damit die anderen Fälle funktionieren wenn mich gearbeitet von/bis gar nicht interessiert.
ich versuche in einer Software, Anzeige Prozeduren mit verschiedenen Fällen, wenn möglich, mit einer SP zu erledigen. Hat zur Folge dass ich in die SP zunächst viele Parameter übergebe, die ich in bestimmten Fällen gar nicht brauche. Im Where-teil schreibe ich dann die Parameter so rein dass auch die richtigen Daten angezeigt werden wenn der Parameter NULL hat.
Bsp.: WHERE projektID = IsNull(@intprojektID,projektID)
Jetzt habe ich einen sonderfall für den ich noch eine Lösung habe. Es geht um Projekte. Ich möchte Projekte bei denen in einem bestimmten Zeitraum gearbeitet wurde. Dieses "gearbeitet" steht in einer anderen Tabelle die auf die projektID per FK verweist. Ich habe es über Subselect im WHERE-Teil versucht WHERE projektID in (select auftrag_projektID from x, y where bea_datum between @start and @ende)
Hier bekomme ich jedoch keinen Treffer in meinen anderen Fällen wenn ich @start @ende sehr groß wähle und noch nicht dran gearbeitet wurde. D.h. das innere SQL hat keinen Treffer und die Projektliste bleibt leer. Ich suche eine Schreibweise für den WHERE-Teil der mir Treffer liefert damit die anderen Fälle funktionieren wenn mich gearbeitet von/bis gar nicht interessiert.
Comment