1. Să se creeze o procedură stocată pentru a afişa datele unui cursant
(student) al cărui CNP este specificat ca parametru. În cazul în care parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de eroare. 2. Sa se creeze o procedura stocata care sa afiseze studentii dintr-o anumita localitate specificata ca parametru. În cazul în care parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de eroare. 3. Să se creeze o procedură stocată pentru a determina valoarea medie a taxei de plata pt modulele din tabelul Module. Procedura va contine un parametru de tip OUTPUT care va prelua valoarea medie a taxei pentru toate modulele. 4. Să se creeze o procedură stocată pentru a determina taxa maximă de plată. Procedura va contine un parametru de tip OUTPUT care va prelua valoarea taxei maxime din toate modulele. 5. Se doreşte calculul unei reduceri pentru toţi cursanţii (studenţii). Suma finală de plată va fi egală cu valoarea taxei iniţiale din care se scade 15% din taxa maximă de plată. 1. Să se creeze o procedură stocată pentru a afişa datele unui cursant (student) al cărui CNP este specificat ca parametru. În cazul în care parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de eroare. CREATE PROCEDURE DateSTUDENT @cnp char(13) = NULL AS IF @cnp IS NULL BEGIN PRINT 'NU ATI FURNIZAT UN CNP !' RETURN END ELSE SELECT * FROM Cursanti WHERE CNPCursant = @cnp
Execuţia: execute datestudent '1721323434345' sau execute datestudent – pt a obţine mesajul de eroare
2. Sa se creeze o procedura stocata care sa afiseze studentii dintr-o
anumita localitate specificata ca parametru. În cazul în care parametrul nu este specificat (rămâne NULL) se va afişa un mesaj de eroare. Create procedure afiseaza_oras @oras nvarchar(50) =null AS IF @oras is null begin print 'alegeti un oras' Return end else Select * from Cursanti where AdresaCursant like @oras
Execuţia:
execute afiseaza_oras Iasi
3. Să se creeze o procedură stocată pentru a determina valoarea medie a taxei de plata pt modulele din tabelul Module. Procedura va contine un parametru de tip OUTPUT care va prelua valoarea medie a taxei pentru toate modulele.
Create procedure test2
@valtax money Output AS Select @valtax=AVG(taxamodul) from Module
Folosire procedura:
declare @valtax money
exec test2 @valtax output select @valtax
sau:
declare @valtax money
exec test2 @valtax output select * from Module where TaxaModul>= @valtax
4. Să se creeze o procedură stocată pentru a determina taxa maximă de
plată. Procedura va contine un parametru de tip OUTPUT care va prelua valoarea taxei maxime din toate modulele.
CREATE PROCEDURE [dbo].[AflaTaxaMax]
@TaxMax Money OUTPUT AS SELECT @taxMAX=MAX(Tax) FROM dbo.Module
Execuţia
declare @taxmax as money
exec dbo.AflaTaxaMax @taxmax output select @taxmax 5. Se doreşte calculul unei reduceri pentru toţi cursanţii (studenţii). Suma finală de plată va fi egală cu valoarea taxei iniţiale din care se scade 15% din taxa maximă de plată.
Se foloseşte procedura declarată la cerinţa 4 şi se va prelua valoarea
parametrului de tip Output într-o variabilă de memorie. DECLARE @taxmax1 AS money EXECUTE dbo.AflaTaxaMax @TaxMax=@taxmax1 OUTPUT SELECT dbo.Student.Surname, dbo.Module.[Module name], dbo.Module.Tax- @taxmax1*0.15 AS ValPlata FROM Student inner join Participation on dbo.Student.[Student ID]=dbo.Participation.[Student ID] inner join dbo.Module on dbo.Participation.[Module ID]=dbo.Module.[ModuleID]