ID pracownika | nazwa uprawnienia | reszta nieistotna:)
0 a
0 b
0 c
1 d
1 a
Pracownicy
ID pracownika | Imie | Nazwisko | reszta nieistotna:)
0 ddd ddd
1 aaa aaa
ztym ze ilosc pracownikow jest nieograniczona a uprawnień jest 21
chodzi mi o zapytanie które zwróci mi imie nazwiska pracownika ktory ma uprawnienia a i b i c
lub a i c i tak dalej dla 2 uprawenien mam takie zapytanie:
SELECT =" SELECT [Imię], [Nazwisko] "+ "FROM Pracownicy "+ "WHERE [ID_pracownika] IN ("+ "SELECT U1.ID_pracownika "+ "FROM Uprawnienia AS U1 INNER JOIN Uprawnienia AS U2"+ " ON (U1.ID_pracownika = U2.ID_pracownika) AND ((U1.[Nazwa uprawnienia] ='" + checkedListBox1.Items[0].ToString() + "') AND (U2.[Nazwa uprawnienia] = '" + checkedListBox1.Items[1].ToString() + "')))";
dla 3 juz mi niechce działąc wywala mi bład skladniowy
SELECT = " SELECT [ID_pracownika], [Imię], [Nazwisko], [Dział], [Stanowisko] " + "FROM Pracownicy " + "WHERE [ID_pracownika] IN (" + "SELECT U1.ID_pracownika " + "FROM Uprawnienia AS U1 INNER JOIN Uprawnienia AS U2" + " ON (U1.ID_pracownika = U2.ID_pracownika) AND ((U1.[Nazwa_uprawnienia] ='" + checkedListBox1.CheckedItems[0].ToString() + "') AND (U2.[Nazwa_uprawnienia] = '" + checkedListBox1.CheckedItems[1].ToString() + "')) " + " INNER JOIN Uprawnienia AS U3 " + "ON (U2.ID_pracownika = U3.ID_pracownika) AND (U3.[Nazwa_uprawnienia] = '" + checkedListBox1.CheckedItems[2].ToString() + "'))";
2 sprawy 1 nie wiem gdzie ten blad zekomo i 2 takie zapytania bym musial formułowac kolejno dla 4 warunkow 5 i tak dalej a to nie jest zbyt optymalna metoda macie koncepcje na inne rozwiazanie tego problemu??