Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Procedura Sql
miszka_p
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
miszka_p
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.08.2010

Ostrzeżenie: (0%)
-----


Witam,
Poniżej umieszczam to co udało mi się napisać:
Na poniższym przykładzie chcę na razie umieścić osoba_id w tabeli. Domyślam się, że umieszczenie przedmiot_id i ocena_id będzie wyglądało tak samo.

CREATE PROCEDURE wstaw_ocene
@nazwisko VARCHAR(30),
@imie CHAR(15)
AS
DECLARE
@osoba_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'
ELSE

--nie wiem jak tutaj pobrać osoba_id pracownika z wywołania oraz jak wstawić je do tabeli osoby_oceny

SELECT @osoba_id from osoba
INSERT INTO osoby_oceny (osoba_id)
VALUES (@osoba_id)
END;



--exec wstaw_ocene 'Nowak', 'Jan'
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(miszka_p @ 3.08.2010, 21:57:25 ) *
Poniżej umieszczam to co udało mi się napisać:

No i od razu lepiej.

Co do Twojego pytania:
Cytat
--nie wiem jak tutaj pobrać osoba_id pracownika z wywołania oraz jak wstawić je do tabeli osoby_oceny

Polecałbym utworzyć zmienną wewnątrz procedury (np. user_id), do której przypiszesz ID użytkownika na podstawie imienia i nazwiska. Przydatna do tego będzie pewnie* konstrukcja SELECT INTO (chyba, że MS SQL Server umożliwia inne przypisanie wartości do zmiennej).

* bo nie korzystam z MS SQL Server (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 02:37