5 Pytań z sql (oracle)

0

Witam.

Mam następujące pytania, które kiedyś zrobiłem ale błędnie. Chciałbym poznać jak prawidłowo wygląda odpowiedź na nie.

6) Wyświetl markę i model samochodu wyprodukowanego w krajach, które wyprodukowały swoje samochody w tym samym roku, w którym wyprodukowano najstarszy samochód.
7) Wyświetl nazwisko i imię autora oraz tytuł książki wydanej przez to samo wydawnictwo, w którym wydano najstarszą książkę, jaka znajduje się w wypożyczalni.
8) Wyświetl dane klientów, którzy korzystali z wypożyczalni w czasie gdy wypożyczony był samochód marki opel.
9) Wyświetl imiona i nazwiska klientów dla tych osób, które wypożyczyły samochód, których łączny koszt wypożyczenia był większy od największego kosztu wypożyczenia samochodu marki Opel.
10) Uaktualnij tabele SAMOCHODY podnosząc koszt_dnia o 5% dla samochodów, których ilość wypożyczeń jest mniejsza od średniej ilości wypożyczeń samochodów wyprodukowanych w Japonii po 2010.

Tabelka dla wypozyczalni samochodów:

SAMOCHÓD


ID_SAMOCHODU
ROK_PRODUKCJI
MARKA
MODEL
KRAJ_PRODUKCJI

WYPOZYCZENIA


ID_WYPOZYCZENIA
ID_SAMOCHODU
ID_KLIENTA
WYPOZYCZONY_OD
WYPOZYCZONY_DO
KOSZT_DNIA

KLIENCI


ID_KLIENTA
IMIE
NAZWISKO

Tabelka dla biblioteki:

AUTOR


ID_AUTORA
IMIE
NAZWISKO

KSIAZKA


ID_AUTORA
ID_KSIAZKI
ID_WYDAWNICTWA
TYTUL
ROK_WYDANIA

WYDAWNICTWO


ID_WYDAWNICTWA
NAZWA

Prosiłbym o konkretne odpowiedzi, w ramach możliwości postaram się sam na to odpowiedzieć, ale proszę o darowanie sobie poszukaj itp albo inne. Liczę na współpracę lub pomoc. Z góry dziękuję.

0

podaj błędne, które zrobiłeś to poprawimy

0
abrakadaber napisał(a):

podaj błędne, które zrobiłeś to poprawimy

Było by to możliwe gdybym miał dostęp do egzaminów. Wiem że brakło mi kilka punktów i chciałbym zobaczyć poprawne. Natomiast w miarę możliwości postaram się napisać (i tak teraz nie mam nic ciekawszego do roboty) i oddać waszej weryfikacji chyba że ktoś napisze wcześniej niż ja :)

0

Odpowiedź na 6.

Odpowiedź na egzaminie była taka sama albo bardzo zbliżona do tej.

SELECT MARKA, MODEL FROM SAMOCHODY WHERE (KRAJ_PRODUKCJI == SELECT KRAJ_PRODUKCJI WHERE (ROK_PRODUKCJI == SELECT MIN(ROK PRODUKCJI))

0

7)

SELECT A.NAZWISKO, A.IMIE, K.TYTUL
FROM AUTOR A, KSIAZA K, WYDAWNICTWO W
WHERE (A.ID_AUTORA == K.ID_AUTORA)
AND (W.ID_WYDAWNICTWA == K.ID_WYDAWNICTWA)
AND (W.ID_WYDAWNICTWA == SELECT W.ID_WYDAWNICTWA
AND (K.ROK_WYDANIA == SELECT MIN(K2.ROK_WYDANIA)
FROM KSIAZKA K2, WYDAWNICTWO W2
WHERE (K2.ID_WYDAWNICTWA == W2.ID_WYDAWNICTWA))

0

Czemu piszesz podwójne znaki równości ?
Kod jest strasznie sformatowany. Robisz nawiasy tam gdzie jest to zupełnie zbędne i wprowadza chaos, a nie robisz często tam gdzie jest to potrzebne.
Odnoszę wrażenie, że nie bardzo potrafisz posługiwać się podzapytaniami. Brakuje słów kluczowych, podzapytania nie są w nawiasie, nie stosujesz aliasów.
Sformatuj poprawnie kod, bo aż oczy bolą.

0

6)

SELECT MARKA, MODEL
FROM SAMOCHODY
WHERE KRAJ_PRODUKCJI = SELECT KRAJ_PRODUKCJI
WHERE ROK_PRODUKCJI = (SELECT MIN(ROK_PRODUKCJI) FROM SAMOCHODY)

7)

SELECT A.NAZWISKO, A.IMIE, K.TYTUL
FROM AUTOR A, KSIAZA K, WYDAWNICTWO W
WHERE A.ID_AUTORA = K.ID_AUTORA
AND W.ID_WYDAWNICTWA = K.ID_WYDAWNICTWA
AND W.ID_WYDAWNICTWA = SELECT W.ID_WYDAWNICTWA
AND K.ROK_WYDANIA = (SELECT MIN(K2.ROK_WYDANIA)
FROM KSIAZKA K2, WYDAWNICTWO W2
WHERE K2.ID_WYDAWNICTWA = W2.ID_WYDAWNICTWA)

Wybacz, nie pracuję w tym języku, == to nawyk z C#, poprawiłem, mam nadzieje że dobrze

0

I chciałbym dodać że nie umiem skonstruować zapytania 8. Chyba nie zrobiłem go dobrze na egzaminie, dawno tych zapytań nie pisałem.

0

Utknąłem w 8 i 9.

Tyle co napisałem

8)

SELECT K.*
FROM KLIENCI K, WYPOZYCZENIA W
WHERE K.ID_KLIENTA = W.ID_WYPOZYCZENIA
AND W.WYPOZYCZONY_OD <= ( SELECT

9)

SELECT K.IMIE, K.NAZWISKO
FROM KLIENCI K, WYPOZYCZENIA W, SAMOCHODY S
WHERE K.ID_KLIENTA = W.ID_KLIENTA
AND S.ID_SAMOCHODU = W.ID_SAMOCHODU
AND S.ID_SAMOCHODU = ( SELECT S2.ID_SAMOCHODU
FROM SAMOCHODY S2
WHERE

Nie wiem co dalej...

0

10) to samo

UPDATE SAMOCHODY
SET KOSZT_DNIA = KOSZT_DNIA*1.05
WHERE

Mam problem z podzapytaniami tego typu i nie wiem za bardzo jak to zrobić ... nie wiem czy 2-3 miesiące to umiałem, ale teraz nie pamiętam i nie mogę sobie przypomnieć jak składało się podzapytania tego typu

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