Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak tworzyć zapytanie, zadania
kostykiewicz
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.11.2012

Ostrzeżenie: (0%)
-----


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


Ten post edytował kostykiewicz 3.11.2012, 19:34:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sazian
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


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ń (IMG:style_emoticons/default/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ć (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 13:48