Sunteți pe pagina 1din 3

1) Creați o funcție care primește cantitatea și prețul de vânzare al unui produs și returnează valoarea

absolută a TVA-ului de 24%.

CREATE FUNCTION S9F1


(
@Cantitate int,
@PretVanzare int
)
RETURNS numeric(5,2)
AS
BEGIN
DECLARE @TVA numeric(5,2)
SET @TVA = (@Cantitate * @PretVanzare) * 0.24
RETURN @TVA
END

Apelați funcția pentru cantitatea 20 și prețul de vânzare 5.


SELECT dbo.S9F1(20,5)

Apelați funcția pentru toate înregistrările tabelei ProduseVândute.


3)
SELECT IdProdus, Cantitate, PretVanzare, dbo.S9F1(Cantitate,PretVanzare) AS TVA
FROM ProduseVandute

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

DECLARE @contor int


SET @contor = 3

WHILE (@contor <= CONVERT(int,SQRT(@pNr)))


BEGIN
IF(@pNr % @contor = 0)
RETURN 0
SET @contor += 2
END

RETURN 1
END

S-ar putea să vă placă și