bookingCalendar (tilknytter medarbejdere til div. datoer) bookingId - staffId - functionId - date
-----------
Selve brugerfladen består så af et kalender-modul hvor man kan vælge en dato, og derefter en jobfunktion fra en selectbox og så skal der i et "GridView" vises hvilke medarbejdere der er ledige.
Er der nogen der kan hjælpe mig med et selectstatement til det.
Mit eget ser således ud: SELECT staffId, date FROM bookingCalendar WHERE (date <> @selectedDate)
Jeg kobler den selvføgelig sammen med staff tabellen med JOINS. Men problemet er, at hvis medarbejder "1" er booket på den dato man har valgt, men også er booket på en anden dato, vil han jo alligevel stå på listen.
SELECT staff.Name FROM staff WHERE (((staff.staffId) NON IN (SELECT staffId FROM bookingCalendar WHERE date=?)));
Det gælder jo om at finde ud af hvem ER booket i calenderen på en given dag - det er subqueryen, og når de er booket den dag, så skal deres navn IKKE findes fra staff (=NOT IN) - og denne select synes at kunne gøre det.
Ja prøver lige med denne her: SELECT staff.Name FROM staff INNER JOIN staffFunctions ON staff.staffID = staffFunctions.staffID WHERE (((staff.staffID) Not In (SELECT staffid FROM calendar WHERE date=?)) AND ((staffFunctions.functionID)=[?]));
Det,der sker her er som følger : Vi finder hvilke staffID er booket på en given dato (subqueryen) - og det er ligemeget med hvilken stafffunction de er booket - når de er booket så er de jo booket.
Fra staff finder vi så alle dem der ikke er booket på den pågældende dag. Så kommer vores join in her - for vi ønsker kun at finde dem som har en given funktion - og den hægter vi så direkte på staff-listen ved at plukke kun dem som har den ønskede functionID - tror jeg nok, hehe:)
og med 2 selects kunne det ser sådan her ud - og er nemmere at forstå: SELECT Staff.Name FROM Staff WHERE (((Staff.staffID) Not In (SELECT staffid FROM calendar WHERE date=?)) AND ((Staff.staffID) In (SELECT staffID FROM staffFunctions WHERE functionID=?)));
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.