Diagram bazy danych znajduje się w załączniku. Czy ktoś może mi potwierdzić poprawność wykonania tych zadań? Dziękuję za pomoc!
PS. Pisane w ORACLE SQL
/* zad 1 */
/* Wstaw nowy rekord do pracowników, a w nim swoje imię i nazwisko, dzisiejszą datę, a resztę według uznania. */
INSERT INTO pracownicy VALUES (224, 'Nazwisko', 'Imie', 'A', 667, 7954, to_date(sysdate, 'dd-mm-yyyy'), 11000, 1, 10);
/* zad 2 */
/* Pokaż wszystkich pracowników, którzy mają podwładnych */
SELECT id_pracownika, nazwisko, imie
FROM pracownicy
WHERE id_pracownika IN (
SELECT id_szefa
FROM pracownicy
WHERE id_szefa IS NOT NULL
);
/* zad 3 */
/* Pokaż średnie ceny dla wyrobów, nawet dla tych, które nie mają ceny. */
SELECT w.opis, avg(c.CENA_CENNIKOWA) as "srednia cena"
FROM wyroby w
JOIN ceny c ON c.id_produktu = w.id_produktu
GROUP BY w.OPIS;
/* zad 4 */
/* Podwoić limit kredytowy klientom, którzy w ciągu ostatniego miesiąca dokonali zamówień. */
UPDATE klienci
SET limit_kredytowy = (limit_kredytowy * 2)
WHERE id_klienta IN (
SELECT id_klienta
FROM zamowienia
WHERE data_zamowienia > ADD_Months(sysdate, -1)
);
/* ---------------------------------------------------------------------- */
/* zad 2 */
/* Wyswietlic zamowienia dla klientow nie z BOSTONU */
SELECT k.id_klienta, k.miasto, z.id_zamowienia
FROM klienci k
JOIN zamowienia z ON k.id_klienta = z.id_klienta
WHERE k.miasto != 'DALLAS';
/* zad 3 */
/* Wyświetlić ilość pracowników na poszczególnym etacie (+ te co nie ma żadnego pracownika) */
SELECT count(p.id_pracownika) as "ilosc pracownikow", e.etat
FROM pracownicy p
JOIN etaty e ON p.id_etatu = e.id_etatu
GROUP BY e.etat;
/* zad 4 */
/* Zwiększyć o 10% limit kredytowy klientom, którzy mają min. 3 zamówienia */
UPDATE klienci
SET limit_kredytowy = (limit_kredytowy * 1.1)
WHERE id_klienta IN (
SELECT z.ID_KLIENTA
FROM klienci k
JOIN zamowienia z ON z.id_klienta = k.id_klienta
GROUP BY z.id_klienta
HAVING count(k.id_klienta) >= 3
);