Sunteți pe pagina 1din 2

E:\SEMINAR 12 SQL.

sql 1
--REALIZATI O FUNCTIE FARA PARAMETRII CARE SA RETURNEZE PRIMELE 10 CONTRACTE CU CEA MAI MARE VALOARE
-- IN FORMAT NRCONTRACT, DATACONTRACT, VALOARE, FIRMA

--EXEMPLU DE UTILIZARE SELECT * FROM TOP 10 CONTRACTE

--CREATE FUNCTION TOP10CONTRACTEMARIUS()


--RETURNS @TABEL1 TABLE
--(NRCONTRACT BIGINT, DATACONTRACT DATE, VALOARE MONEY, NUMEFIRMA VARCHAR(50))
--AS
--BEGIN
-- INSERT @TABEL1
-- SELECT TOP 10 NRCONTRACT, DATACONTRACT, VALOARE, NUMEFIRMA
-- FROM CONTRACTE INNER JOIN CLIENTI ON CONTRACTE.CODCLIENT=CLIENTI.CODCLIENT
-- ORDER BY VALOARE DESC
-- RETURN
-- END

--SELECT * FROM TOP10CONTRACTEMARIUS()

-- UTILIZATI FUNCTIA PENTRU A AFISA LISTA INCASARILOR


--PENTRU PRIMELE 10 CELE MAI MARI CONTRACTE
--INTR UN VIEW CU URMATOARELE CAMPURI NROP, DATAOP, SUMA, FIRMA

--REALIZATI O FUNCTIE CARE VA PRIMI CA PARAMETRU UN


--NUME DE FIRMA SI VA AFISA LISTA CONTRACTELOR PENTRU FIRMA
--RESPECTIVA IN FORMATUL NRCONTRACT,DATACONTRACT, VALOAREFIRMA
--EXEMPLU: select* from listacontractefirma('fox sa')

--CREATE FUNCTION LISTACONTRACTEFIRMASAMSON(@NUMEFIRMA VARCHAR(50))


--RETURNS @TABEL1 TABLE
--(NRCONTRACT BIGINT, DATACONTRACT DATE, VALOARE MONEY)
--AS
--BEGIN
--INSERT INTO @TABEL1
--SELECT NRCONTRACT,DATACONTRACT,VALOARE
--FROM CONTRACTE INNER JOIN CLIENTI ON CONTRACTE.CODCLIENT=CLIENTI.CODCLIENT
--WHERE NUMEFIRMA=@NUMEFIRMA
--RETURN
--END

--select* from listacontractefirmaSAMSON('fox sa')

--SELECT * FROM INCASARI

--REALIZATI O FUNCTIE CE VA PRIMI CA PARAMETRU UN AN CALENDARISTIC


--SI VA RETURNA LISTA INCASARILOR DIN ACEL AN DUPA DATAOP
--CU SUME MAI MARI DECAT VALOAREA MEDIE A INCASARILOR IN BAZA DE DATE IN FORMATUL
-- NROP, DATAOP, SUMA, FIRMA
-- SELECT * FROM INCASARIPESTEMEDIE(2007)

--ALTER FUNCTION INCASARIPESTEMEDIESAMSON(@ANUL INT)


--RETURNS @TABEL2 TABLE
--(NROP NCHAR(10), DATAOP DATETIME, SUMA MONEY, FIRMA VARCHAR(50))
--AS
--BEGIN
--DECLARE @MEDIE AS MONEY
--SET @MEDIE=(SELECT AVG(SUMA) FROM INCASARI)
--INSERT INTO @TABEL2
--SELECT NROP, DATAOP, SUMA , NUMEFIRMA
--FROM CLIENTI INNER JOIN CONTRACTE ON CLIENTI.CODCLIENT=CONTRACTE.CODCLIENT
--INNER JOIN INCASARI ON CONTRACTE.NRCONTRACT=INCASARI.NRCONTRACT
--WHERE YEAR(DATAOP)=@ANUL AND SUMA>@MEDIE
--RETURN
----END
E:\SEMINAR 12 SQL.sql 2
--SELECT * FROM INCASARIPESTEMEDIESAMSON(2007)

--REALIZATI O FUNCTIE CARE VA PRIMI CA PARAMETRU NUMELE UNEI TARI SI


--VA RETURNA UN TABEL CU
-- NUMEFIRMA, TOTALCONTRACTE CE VA CONTINE CLIENTII DIN TARA-PARAMETRU
--CARE AU MAI MULT DE 2 CONTRACTE
--EXEMPLU SELECT * FROM CALCULCONTRACTE('bULGARIA)

--CREATE FUNCTION CALCULCONTRACTESAMSON( @TARA VARCHAR(50))


--RETURNS @TABEL3 TABLE (
--NUMEFIRMA VARCHAR(50), TOTALCONTRACTE INT)
--AS
--BEGIN
--INSERT INTO @TABEL3
--SELECT NUMEFIRMA, COUNT(NRCONTRACT)
--FROM CONTRACTE INNER JOIN CLIENTI ON CONTRACTE.CODCLIENT=CLIENTI.CODCLIENT
--WHERE TARA=@TARA
--GROUP BY NUMEFIRMA
--HAVING COUNT(NRCONTRACT)>2
--RETURN
--END

--SELECT * FROM CALCULCONTRACTESAMSON('bULGARIA')

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