Documente Academic
Documente Profesional
Documente Cultură
Creați o funcție care primește ca parametri numărul unui bon de casă, o dată și o variabilă de tip bit și returnează
suma totală a plăților pentru acel bon până la data specificată, dacă ultimul parametru este 0, sau după data
specificată, dacă este 1. Valoarea implicită a parametrului este 0.
4)
CREATE FUNCTION S9F4
(
@pNrBonCasa int,
@pData date,
@pDirectie bit = 0
)
RETURNS money
AS
BEGIN
DECLARE @vSumaPlati money
IF @pDirectie = 0
SET @vSumaPlati = ( SELECT SUM(SumaPlatita)
FROM Plati
WHERE DataOraPlata < @pData AND
NrBonCasa=@pNrBonCasa)
ELSE
SET @vSumaPlati = ( SELECT SUM(SumaPlatita)
FROM Plati
WHERE DataOraPlata > @pData AND
NrBonCasa=@pNrBonCasa)
RETURN @vSumaPlati
END
Folosind funcția anterioară, afișați suma plăților aferente bonului cu numărul 11 până la 1/1/2013.
5)
SELECT dbo.S9F4(11,'1/1/2013', default)
Creați o funcție tabelară cu mai multe instrucțiuni care primește ca parametru numărul unui bon de casă și
returnează un tabel format din id-ul plății, tipul plății și suma plătită pentru toate plățile aferente acelui bon de
casă.
6)
CREATE FUNCTION S9F6
( @pNrBonCasa int)
RETURNS @tPlati TABLE (IdPlata int, TipPlata nvarchar(50), SumaPlatita money)
AS
BEGIN
INSERT INTO @tPlati
SELECT IdPlata, TipPlata, SumaPlatita
FROM Plati
WHERE NrBonCasa = @pNrBonCasa
RETURN
END
Creați o funcție care să returneze valoarea totală a unui bon de casă definit prin numărul său.
12)
CREATE FUNCTION S9F12
( @pNrBonCasa int )
RETURNS money
AS
BEGIN
DECLARE @vValoareBon money
SET @vValoareBon = (SELECT SUM(Cantitate*PretVanzare)
FROM ProduseVandute
WHERE NrBonCasa = @pNrBonCasa
GROUP BY NrBonCasa)
RETURN @vValoareBon
END
Creați o funcție care primește ca parametri numărul unui bon de casă și o dată și returnează un tabel format din
valoarea bonului, totalul sumelor plătite până la data sepcificată, precum și diferența de plată. Se vor folosi
funcțiile S9F12 și S9F4.
14)
CREATE FUNCTION S9F14
(
@pNrBonCasa int,
@pData date
)
RETURNS TABLE
AS
RETURN (SELECT @pNrBonCasa AS NrBonCasa, dbo.S9F4(@pNrBonCasa,@pData,0) AS
ValoareBon,dbo.S9F12(@pNrBonCasa) AS SumaPlatita, dbo.S9F4(@pNrBonCasa,@pData,0)-
dbo.S9F12(@pNrBonCasa) AS DiferentaDePlata)
Creați o funcție care primește ca parametru un număr întreg și returnează 1, dacă este prim și 0, altfel
16)
CREATE FUNCTION S9F16
( @pNr int )
RETURNS bit
AS
BEGIN
IF @pNr < 0
RETURN 0
IF @pNr % 2 = 0
RETURN 0
RETURN 1
END