Zadanie: składnik pizzy występujący w innej...

0

Mam problem z zadaniem odnośnie bazy danych "Pizzeria" Oto zadanie:
-Podaj instrukcję wyświetlającą nazwy klientów, którzy zamówili w czwartym kwartale 2013 r. pizze o średnicy większej niż˙40 cm i zawierającą składnik żurawina. (Interesują nas zamówienia z tabeli historia).

Jak dotąd udało napisać mi się coś takiego:
SELECT idklienta, WHERE extract(quarter FROM datarealizacji)=1 AND srednica > 40 AND

Nie mam pojęcia, jak to zrobić oraz czy to co dotąd napisałem jest dobrze... proszę o pomoc.
user image

0

Pokaż strukturę tabel.

0

Niestety są to jedyne informacje które posiadam...

0

Nie masz nazw kolumn nawet, nazw tabel itd?Masz sobie je sam wymyślić?

0

Nie rozumiem twojego problemu, przecież w pierwszym poście dodałem charakterystykę całej bazy danych...
dodam ją jeszcze raz (tym razem w postaci linku) - http://zapodaj.net/images/e675e281f7044.png

0

2aff5fdedf.png

To jest Twój post.Wchodząc na link, taka sama sytuacja.

Pozdrawiam ;-)

0

Pewnie chodzi o tą bazę co mam w załączniku. Mam pytanie odnośnie relacyjnych baz danych. Jak widzimy w załączniku jest tabela historia i nie jest połączona z innymi tabelami. Tu pojawia się moje pytanie. Co należy użyć by na przykład posiadać dane w jednym zapytaniu na przykład właśnie z tabeli historii i klienci?

0

Należy użyć inner joina.To, że tabela nie jest połączona oznacza, że integralność tabeli Historia z innymi tabelami nie jest w żaden sposób wymuszona przez system bazodanowy, co wcale nie oznacza, że nie ma spójności(zakładając, że aplikacja która używa tej bazy danych działała/działa poprawnie )

EDIT:Zamieniłem zdanie integralność na spójność, lepiej pasuje.

Pozdrawiam ;-)

0

Oto moje rozwiązanie :

SELECT 
 k.nazwa,
 h.datarealizacji,
 p.srednica,
 s.nazwa 
FROM 
 klienci k 
INNER JOIN historia h ON extract(quarter FROM datarealizacji) = 4 
INNER JOIN pizze p ON p.srednica > 40 
INNER JOIN skladniki s ON s.nazwa = 'żurawina';

Jak coś napisałem źle to poprawiać mnie i jak macie coś w ramach dygresji to proszę! :)

0

Zbiór który dostaniesz nie będzie poprawny.Używając warunków które podałeś, otrzymasz produkt kartezjański.Rzeczywiście wybierze Ci np.pizze powyżej 40 cm, i połączy ze WSZYSTKIMI rekordami z pozostałych tabel itd.
Najpierw złącz tabele używając kluczy głównych, obcych a potem nałóż filtr where.

Pozdrawiam ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1