Zapytania w SQL do bazy dancyh

0

Witam

Otóż mamy następującą bazę danych:

Towar(Id,Nazwa,Typ,Ilość,Cena)
Klient(Id,Nazwa,Obroty)
Oferta(Id,Nazwa,Typ,DataWystawienia,idTowar,idKlient,Kwota)
Zamówienia(Id,Nazwa,Typ,DataWystawienia,idTowar,idKlient,Kwota)
ZamówieniaOferta(Oferta,IdZamówiania)

Tabela ZamówieniaOferta oznacza, że zamówienie powstało na podstawie oferty

W języku SQL napisz następujące zapytania:

  1. Wypisz wszystkie typy zamówień, które nie zostały wystawione dla klienta "AXA" w roku 2008 .
  2. Wypisz sumę kwot ofert wystawionych dla poszczególnych klientów w roku 2005. W wyniku uwzględnij jedynie takich klientów, których obroty są większe nić 20000 oraz których suma kwot ofert jest większa niż 10000.
  3. Wypisz typ towaru, który był najczęściej oferowany przez klientów w latach 2001 - 2009

DODATKOWO *
Zadanie 1 napisz w RRK i Datalogu
Zadanie 2 wyraź w algebrze relacji

Może tak:
1)
SELECT z.Typ FROM Zamówienie z
INNER JOIN Klient k
ON z.idKlienta = k.Id
WHERE k.Nazwa NOT IN
( SELECT k.Nazwa FROM Klient k
INNER JOIN Zamówienie z
ON k.Id = z.idKlient
WHERE k.Nazwa = "AXA" AND YEAR(z.DataWystawienia) = 2008 )

SELECT k.Nazwa, SUM(o.Kwota) FROM Oferta o
INNER JOIN Klient k
ON o.Id = k.idKlient
WHERE YEAR(o.DataWystawienia=2005)
GROUP BY k.Nazwa
HAVING SUM(o.Kwota)>10000

nie mam pojęcia gdzie dać k.Obroty>20000 bo chyba do HAVING nie mogę, a tam najbardziej mi pasuje
nie wiem czy wyrażeniem grupującym nie powinno być k.Id a nie k.Nazwa

Trzeba chyba połączyć tabele Towar, Oferta, ZamówieniaOferta i zastosować gdzieś łączenie zwrotne ? Tutaj na razie nie mam żadnego pomysłu

1

no i co? jelenia szukasz, który za ciebie prace domową zrobi?? Jak ci się nie chce to 50zł za zadanie i możemy rozmawiać.

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