Wpis z mikrobloga

Czy ktoś ogarnięty w #sql pomógłby mi opracować kilka zapytań w celu nauki baz danych? #programowanie

Tutaj mam bazę danych https://pastebin.com/YmLupQxw . Interesuje mnie kilka zapytań do niej, ponieważ mam problemy z ich napisaniem.

1.Wyświetlić Imię, Nazwisko, Stanowisko pracowników, który
obsługiwał klientów z Kielc
2.Wyświetlić dane zleceń (nazwiska klientów, opis usługi, cena)
zrealizowanych przez sprzedawcę, który mieszka w Kielcach
  • 12
@bronkarus: i czego dokładnie nie ogarniasz? dokumentacji? przecież to są zwykłe joiny, może przeczytaj najpierw dokumentacje i tyle? bo wygląda to na jakieś zadanie do szkoły/studia i czekasz na gotowca
@bronkarus: przecież te dwa zapytania jest się w stanie napisać po dniu nauki sqla, a nawet krócej, przecież to jest żenada, jeszcze tagujesz #!$%@? programowanie a ma to zero związku z programowaniem

możesz napisz do czego dotarłeś do tej pory, bo piszesz że masz problemy z ich napisaniem, także pokaż co napisałeś do tej pory i co ci nie działa, chociaż tutaj nie wiem od czego my mamy być jak silnik
@bronkarus: no dobrze to pokaż co masz do tej pory, bo napisałeś że masz problemy z ich napisaniem, czyli coś musiałeś zacząć robić, w dokumentacji masz jak używać złączeń, czego jeszcze potrzebujesz? to nie jest tajemna wiedza którą znają tylko ludzie z tagu #programowanie to wszystko jest w dokumentacji w której zwykle również są też przykłady, wystarczy ją otworzyć i przeczytać
@bronkarus: Pomimo, że SQL miałem na studiach i nie przykładałem do tego uwagi, a było to z 5 lat temu, to obecnie rozwiązałbym to zadanie z palcem w dupie. Biorąc pod uwagę to, że pewnie jesteś na studiach, albo chłoniesz nową wiedzę niczym gąbka, to mogę jedynie stwierdzić, że czytając tutoriale w Internecie powinieneś był rozwalić te 2 zapytania z duzym trudem nie w mniej niż 30 minut ( ͡°
@Jurigag: @bronkarus: Schemat jest ok z tym drobnym szczegółęm którego OP nie dodał że to Oracle bo MSSQL ma inne datatypes (NUMBER -> INT, VARCHAR2 -> VARCHAR). Nie ma co przy tym dłubać na bazie bo jeszcze by wypadało dane jakieś powprowadzać a to jest typowe zadanie na kartkę z nauki JOIN z warunkami + ewentualnie można się pokusić o jakieś CTE.
Pokaż co tam już masz + polecam żebyś
w nauce zatrzymałem się przy joinach właśnie, nie bardzo wiem co mam złączyć z czym, żebym otrzymał wynik, którego potrzebuję. Tutaj pobrałem wszystkich pracowników:

select osoby.imie, osoby.nazwisko, stanowiska.nazwa from
((Osoby INNER JOIN pracownicy ON osoby.id_osoby=pracownicy.id_osoby)
inner JOIN stanowiska ON pracownicy.id_stanowiska = stanowiska.id_stanowiska)
;

Mógłbym też pobrać selectem wszystkich klientów z Kielc, ale nie bardzo wiem jak to potem złączyć, żebym otrzymał szukany wynik.
@bronkarus:

Zaczne od tego że dawno nic nie klepałem więc mam nadzieję że nie jebnąłem się nigdzie w poniższym wywodzie.

Po pierwsze primo to formatuj poprawnie nawet najdrobniejszy kawałek kodu żeby wyrobić w sobie taką dyscyplinę bo jeden czy dwa JOIN-y napisać ciurkiem to wiadomo ocb ale jak będziesz miał np. procedurę na kilkaset linii to już nietrudno się pogubić a osoba która kiedyś siądzie nad takim kodem będzie miała jeszcze
@2YT4U: Według Twoich wskazówek zrobiłem punkt drugi, zapytanie działa poprawnie (ale nadal nie użyłem Joinów bo mam problemy z poprawną składnią przy bardziej skomplikowanych zapytaniach)

SELECT Osoby.imie, Osoby.nazwisko, Uslugi.cena, Uslugi.opis
FROM
Uslugi, Osoby, Zlecenia,Klienci
WHERE
Zlecenia.ID_PRACOWNIKA IN (SELECT pracownicy.id_pracownika FROM Adresy,Pracownicy,Osoby,Stanowiska
WHERE Osoby.ID_ADRESU = Adresy.ID_ADRESU
AND Adresy.MIASTO = 'Kielce'
AND Stanowiska.ID_STANOWISKA = Pracownicy.ID_STANOWISKA
AND Stanowiska.NAZWA = 'SPRZEDAWCA'
AND Osoby.ID_OSOBY = Pracownicy.ID_OSOBY)
AND Zlecenia.ID_KLIENTA = Klienci.id_klienta
AND Osoby.ID_OSOBY = Klienci.ID_OSOBY
AND Zlecenia.ID_USLUGI
@bronkarus: walnąłem byka tam w jednym JOIN-ie tam, ciekawe czy znajdziesz ;)
Poza tym to jest naskrobane w TSQL i pewnie są jakieś różnice w składni względem Oracle których nie wychwyciłem ale myślę, że ogarniesz to sobie już. Prawdopodobnie będzie też problem z case sensitive jak już wspomniałem - trzeba zrobić wtedy taki myk:
WHERE
UPPER(s.nazwa) = 'SPRZEDAWCA'
AND UPPER(a.Miasto) = 'KIELCE'