Zmienne dowiązane

S2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 91
0

Jak będzie wyglądać zapytanie do bazy danych z wykorzystaniem zmiennych dowiązanych i bloków anonimowych jeżeli chcemy wyszukać tytuł i autora najcześciej wypozyczanej pozycji w księgozbiorze, mając taki schemat bazy danych

  • Czytelnicy (nr_czyt, nr_dokum, nazwisko, imie, data_ur, miasto, ulica, data_zapisu)
  • Pozycje (isbn, autor, tytul, wydawnictwo, wydanie, streszczenie)
  • Woluminy ( nr_kat, # isbn, data_wprowadzenia, data_likwidacji, status, cena_zak)
  • Wypozyczenia (nr_wyp, # nr_czyt, # nr_kat, data_wyp, data_zwr)
  • Rezerwacje (# nr_czyt, # nr_kat, data_rez)
  • Prolongaty (# nr_wyp, data_prol)
woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1618
1

Nie podałeś nawet jaka to baza danych, nie podałeś DDL tabel aby było nam łatwiej przeanalizować sytuację, nie podałeś nawet fragmentu swojego zapytania więc wnioskuję, że potrzebujesz gotowca. Nie mając odpowiednich informacji na moje oko będzie to coś w stylu

Kopiuj
select top 1 count(nr_kat) from wypozyczenia group by nr_kat order by 1 desc
woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1618
0

Wersja bazy wskazuje mi na dystrybucję Oracle - czego nie podałeś. Co do zmiennych dowiązanych ... to musisz je sobie zadeklarować w bloku PL/SQL czyli tworzysz np zmienną rok i dodajesz do zapytania warunek where ze zmienną. Może to być też parametr. Co do "bloku anonimowego" to mniemam, że chodzi o coś takiego:

Kopiuj
DECLARE
  -- deklaracje obiektów PL/SQL jak zmienne, stałe, wyjątki, procedury, funkcje
  zmienna_z_bloku_declare integer;
BEGIN
   zmienna_z_bloku_declare := 2016;
   SELECT  COUNT(nr_kat) FROM wypozyczenia WHERE data_wyp = zmienna_z_bloku_declare GROUP BY nr_kat ORDER BY 1 DESC
EXCEPTION
   when others then 
     raise_application_error(-20010,'Zonk')
END;

oczywiście jest to przykład bez sprawdzania i z pewnością nie zadziała (z pewnością warunek na datę go zaboli) do tego możesz jeszcze pokombinować z rownum=1 aby zwrócić tylko 1 rekord

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.