Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak tworzyć zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
kostykiewicz
Witam,
jestem studentką pielegniarstwa na jednej z polskich uczelni mam do was pytanie, jako że nie znam się zabardzo na tym a staram się pojąć chociaż jest to dla mnie trochę trudne bo nie jest to moja dziedzina zwracam się do was z prośbą o pomoc w zadaniach jakie dostałam od naszej pani doktor z baz danych.

Poniżej umieszczam plik pdf zadaniami.
Zrobilam zadania od 1 do 10 natomiast z zadaniem 11 mam problem bo nie wiem jak sobie z nim poradzic bardzo prosze o pomoc bede niezmiernie wdzieczna.


Plik z zadaniami pdf LINK TutAJ
plik z jakiego korzystalam do tworzenia bazy danych uzytkownikow: link



Np. yadanie 12 i 13 zrobilam tak i wyszlo mi dobrze


Kod
12. select nazwisko, id_zesp
from pracownicy
where id_zesp = 20
and (nazwisko LIKE 'M%'
or nazwisko LIKE '%SKI')

13. select nazwisko, etat, placa_pod/240 AS DNIOWKA
from pracownicy
where placa_pod >= 800
and ( etat = 'PROFESOR'
or etat = 'DYREKTOR' )
order by DNIOWKA ASC
maly_swd
  1. SELECT ID_PRAC, ID_SZEFA, NAZWISKO, PLACA_POD FROM PRACOWNICY WHERE ID_SZEFA=100 AND PRACA_POD>1000
sazian
pisane z palca więc mogą być jakieś błędy/literówki

11)
Jeśli to puste pole to NULL to wtedy
  1. SELECT ID_PRAC, ID_SZEFA, NAZWISKO, PLACA_POD
  2. FROM PRACOWNICY
  3. WHERE ID_SZEFA IS NOT NULL AND PRACA_POD>1000





12)
wygląda dobrze

13)
myślę że tu autorce chodziło o użycie operatora IN - a dokładnej jego negacji czyli NOT IN
  1. SELECT NAZWISKO, ETAT, PLACA_POD/240 AS DNIOWKA
  2. FROM PRACOWNICY
  3. WHERE
  4. ETAT NOT IN ('ADIUNKT','ASYSTENT','STAZYSTA')
  5. AND NOT (PLACA_POD>=400 AND PLACA_POD<=800)
  6. ORDER BY DNIOWKA


mogło też chodzić o użycie operatora BETWEEN dla przedziału
  1. SELECT NAZWISKO, ETAT, PLACA_POD/240 AS DNIOWKA
  2. FROM PRACOWNICY
  3. WHERE
  4. ETAT NOT IN ('ADIUNKT','ASYSTENT','STAZYSTA')
  5. AND NOT BETWEEN PLACA_POD 400 AND 800
  6. ORDER BY DNIOWKA



14)
  1. SELECT NAZWISKO, ETAT, PLACA_POD, PLACA_DOD
  2. FROM PRACOWNICY
  3. WHERE
  4.  
  5. PLACA_POD+PLACA_DOD>1000
  6. ORDER BY ETAT, NAZWISKO



15)
  1. SELECT concat(NAZWISKO,' PRACUJE OD ',ZATRUDNI,' I ZARABIA ',CAST(PLACA_POD AS CHAR))
  2. FROM PRACOWNICY
  3. WHERE ETAT = 'PROFESOR'
  4. ORDER BY PLACA_POD DESC


Ponieważ pole PLACA_POD powinno być typu zmiennoprzecinkowego(FLOAT, DECIMAL...) należy użyć parsowania typów - czyli zmiany jednego typu na drugi.
tutaj użyłem CAST(PLACA_POD AS CHAR) czyli zmiana typu zmiennoprzecinkowego na znakowy(CHAR).


masz zrobić wszystkie 66 zadań questionmark.gif

Tak nawiasem mówiąc to ta pani doktor która projektowała tą bazę jest idiotką, a o sposobie udostępnienia tej bazy to już chyba lepiej nie wspominać biggrin.gif
kostykiewicz
Dziekuje wam wszystkim za pomoc, ktora mi udzielacie, nie znam sie az tak na tym na zrobionych przykladach staralam sie wykonac te zadania, ale czasem juz nie moge, nie czaje tego totalnie, moze z czasem to sie zmieni ale jak na dzien dzisiejszy to nie bardzo.

Tak mam 66 zadan zrobic biggrin.gif

Narazie mam to co zrobilam sama i te ktore mi pomogliscie to ogarnac smile.gif Jesli mozesz/mozecie i ktos chce podlubac troche to bardzo prosze o pomoc w innych zadaniach, bede niezmiernie wdzieczna smile.gif w przyszlosci bede kierowala sie tymi przykladami zrobionymi bo nie sadze aby cos innego wymyslala nasza Pani doktor.

Serdecznie dziekuje za udzieloną mi dotychczasową pomoc smile.gif :*
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.