![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Proszę o pomoc w napisaniu procedury w Sql. Mam 4 tabele: 1. osoba z kolumnami - osoba_id - nazwisko - imie 2. oceny z kolumnami - ocena_id - ocena 3. Przedmioty z kolumnami - przedmiot_id - nazwa 4. osoby_oceny z kolumnami Wpisy w tej tabeli są wpisami łączącymi 3 powyższe tabele czyli (osoba_id, przedmiot_id, ocena_id) Chciałbym napisać procedurę która wstawiałaby mi te dane do tabeli sprawdzając wpisane w wywołaniu dane (nazwisko, nazwa przedmiotu, ocena) w poszczególnych tabelach i po sprawdzeniu ich istnienia do tabeli nr 4 wprowadziłaby wartości id tych parametrów. Przykład wywołania: Exec wstaw_ocene (Kowalski, Matematyka, 2,5) Z góry serdecznie dziękuję za odpowiedzi. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 3.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Serdecznie dziękuję za pomoc.
Chciałbym jednak jeszcze prosić o pomoc ponieważ małymi kroczkami "idę do przodu" (wstawianie jednej wartości np. osoba_id już mi wyszło) ale nie mogę teraz dodać przedmiot_id. ALTER PROCEDURE wstaw_ocene @nazwisko VARCHAR(30) ,@imie CHAR(15) --,@przedmiot_nazwa CHAR(15) AS DECLARE @osoba_id INT --,@przedmiot_id INT BEGIN IF NOT EXISTS (SELECT 1 FROM osoba WHERE nazwisko = @nazwisko AND imie = @imie) PRINT 'W bazie nie istnieje osoba o takich danych' SELECT @osoba_id = osoba_id FROM osoba INSERT INTO osoby_oceny (osoba_id) VALUES (@osoba_id) END; --jak dodać poniższe? Jak wstawiam w tej formie przez END to krzyczy komunikat, że osoba_id nie może być null i nic nie wstawia. IF NOT EXISTS (SELECT 1 FROM przedmioty WHERE nazwa = @przedmiot_nazwa) PRINT 'W bazie nie istnieje taki przedmiot' SELECT @przedmiot_nazwa = przedmiot_id FROM przedmioty INSERT INTO osoby_oceny (przedmiot_id) VALUES (@przedmiot_id) Z góry serdecznie dziękuję za odpowiedzi. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 18:07 |