Sunteți pe pagina 1din 7

EXEMPLE DE INTEROGARI IN SQL

COMPUNERE CU WHERE - 2 tabele.


Sa se afiseze informatii privind
facturile emise inclusiv valoarea
facturata pe fiecare CODISBN.

SELECT FACTURI.NRFACT,
FACTURI.DATAFACT,
FACTURI.CODFISCAL, [CONTINUT
FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE,
[CONTINUT FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE
*[CONTINUT FACTURA].PRETF AS VALOARE
FROM FACTURI, [CONTINUT FACTURA]
WHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;
3 tabele
Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pe fiecare
CODISBN si pentru fiecare client.
SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL,
[CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT
FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE
*[CONTINUT FACTURA].PRETF AS VALOARE,
CLIENTI.CODFISCAL, CLIENTI.DENUMIRECL
FROM FACTURI, [CONTINUT FACTURA], CLIENTI
WHERE FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT AND
CLIENTI.CODFISCAL=FACTURI.CODFISCAL;
COMPUNERE CU JOIN
a) Cu INNER JOIN
SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL,
[CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT
FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT
FACTURA].PRETF AS VALOARE
FROM FACTURI INNER JOIN [CONTINUT FACTURA] ON
FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;

b) Cu LEFT JOIN
SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL,
[CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT
FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT
FACTURA].PRETF AS VALOARE
FROM FACTURI LEFT JOIN [CONTINUT FACTURA] ON
FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;

c) Cu RIGHT JOIN
SELECT FACTURI.NRFACT, FACTURI.DATAFACT, FACTURI.CODFISCAL,
[CONTINUT FACTURA].CODISBN, [CONTINUT FACTURA].CANTITATE, [CONTINUT
FACTURA].PRETF, [CONTINUT FACTURA].CANTITATE*[CONTINUT
FACTURA].PRETF AS VALOARE
FROM FACTURI RIGHT JOIN [CONTINUT FACTURA] ON
FACTURI.NRFACT=[CONTINUT FACTURA].NRFACT;
d. Cu 3 tabele
Sa se calculeze valoarea facturilor pe fiecare client cu specificarea continutului facturilor.
SELECT Facturi.[Numar Factura], Facturi.[Data Facturii], [Continut Factura].Cantitate,
[Continut Factura].[Pret f], [Cantitate]*[Pret f] AS Valoare,
Clienti.[Cod Fiscal], Clienti.[Denumire Client]
FROM Clienti INNER JOIN Facturi
(INNER JOIN [Continut Factura] ON Facturi.[Numar Factura] = [Continut Factura].
[Numar Factura])
ON Clienti.[Cod Fiscal] = Facturi.[Cod Fiscal];

Functii agregat
SELECT DISTINCT Max(a5) AS [a5_Maxim], Min(a5) AS [a5_Minim], Avg(a5) AS
[a5_Medie] FROM A;
SELECT COUNT(*) AS [Numr de tupluri]
FROM A;
Afiarea valorii pe fiecare carte facturat n luna martie 2013
SELECT Facturi.[Numar Factura],
[Continut Factura].[Cod ISBN],
Month([Data Facturii]) AS Luna,
Year([Data Facturii]) AS Anul,
[Cantitate]*[Pret f] AS Valoare
FROM Facturi INNER JOIN [Continut Factura] ON Facturi.[Numar Factura] = [Continut
Factura].[Numar Factura]
WHERE Month([Data Facturii])=3 AND Year([Data Facturii])=2013;
Adaugarea de inregistrari in tabelul CLIENTI-NOI din tabelul CLIENTI
INSERT INTO [CLIENTI-NOI] ( [COD-CL], [DEN-CL] )
SELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL]
FROM CLIENTI WHERE [COD-CL]=1 OR [COD-CL]=5;
Adaugarea de inregistrari in tabelul FACTURI-NOI din tabelul FACTURI
INSERT INTO FACTURI ( [NR-FACTURA], [COD-CL], [COD-MARFA], CANTITATE,
PRET, DATA )
SELECT [FACTURI-NOI].[NR-FACTURA], [FACTURI-NOI].[COD-CL], [FACTURINOI].[COD-MARFA], [FACTURI-NOI].CANTITATE, [FACTURI-NOI].PRET,
[FACTURI-NOI].DATA FROM [FACTURI-NOI]
WHERE ([facturi-noi].[COD-MARFA]=2) AND ([FACTURI-NOI].DATA>#3/3/2012#);
Afiarea totalului cantitilor facturate pe fiecare marf i pentru fiecare client.
TRANSFORM Sum([CLIENTI-MARFURI-FACTURI].CANTITATE) AS
SumaCANTITATE
SELECT [CLIENTI-MARFURI-FACTURI].[DEN-MARFA]
FROM [CLIENTI-MARFURI-FACTURI]
GROUP BY [CLIENTI-MARFURI-FACTURI].[DEN-MARFA]
PIVOT [CLIENTI-MARFURI-FACTURI].[DEN-CL];
S se tearg din tabelul Facturi nregistrarile care au
nr-factura=2.
DELETE *
FROM FACTURI
WHERE ((FACTURI.[NR-FACTURA])=2);

Sinteza pe client- afiarea totalului valoric pentru mrfurile facturate pe fiecare client
SELECT [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURIFACTURI].[DEN-CL], Sum([CLIENTI-MARFURI-FACTURI].VALOARE) AS
SumOfVALOARE
FROM [CLIENTI-MARFURI-FACTURI]
GROUP BY [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURIFACTURI].[DEN-CL];
Compunere cu join
SELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL], LIVRARI.[COD-MARFA],
LIVRARI.CANTITATE
FROM CLIENTI INNER JOIN LIVRARI ON CLIENTI.[COD-CL] = LIVRARI.[CODCLIENT];
Majorarea cu 20% a pretului n facturile clientilor avnd codul>20.
UPDATE [facturi-noi]
SET PRET = pret*1.2
WHERE ([cod-cl]>20);
Afiarea informaiilor despre un client pentru care localitatea se va introduce ca
parametru de la tastatura calculatorului.
SELECT CLIENTI.[COD-CL], CLIENTI.[DEN-CL], CLIENTI.LOCALITATE
FROM CLIENTI
WHERE ((CLIENTI.LOCALITATE)=[INTRODUCETI LOCALITATE=]);
Reuniunea tabelului CLIENTI cu Tabelul CLIENTI ARAD
SELECT [CodFiscal],[DenumireCL],Localitate,Telefon
FROM Clienti
UNION SELECT [CodFiscal],[DenumireCl],Localitate,Telefon
FROM [Clienti Arad]
ORDER BY Localitate, [DenumireCl];
Din ce localitate sunt clienii ce au n factur codfiscal=555555555.
SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATE
FROM CLIENTI
WHERE CLIENTI.[CODFISCAL] IN
(SELECT FACTURI.[CODFISCAL]
FROM FACTURI
WHERE FACTURI.[CODFISCAL]="555555555");
Din ce localiti sunt clienii ce nu au n factur codfiscal=555555555.

SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATE


FROM CLIENTI
WHERE CLIENTI.[CODFISCAL] NOT IN
(SELECT FACTURI.[CODFISCAL]
FROM FACTURI
WHERE FACTURI.[CODFISCAL]="555555555");
Se d structura tabelelor:
FURNIZORI(CODFZ, DENFZ, LOCALITATE)
CONTRACTE(NUMAR CONTRACT, DATA, VALOARE CONTRACT, CODFZ)
Se cere s scriei frazele SQL pentru urmtoarele cerine:
1. Afiarea codului furnizorilor i numrului de contract pentru cei care au data
contractului 17 aprilie 2012
SELECT DISTINCT [Nrcontract], codfz, DATA
FROM CONTRACTE
WHERE CODFZ IN
(SELECT CODFZ FROM CONTRACTE WHERE([DATA]= #4/17/2012#));
2. Furnizorii din Bucuresti care au contract in anul curent si au valoare contract
>10000
SELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitate,
CONTRACTE.NRCONTRACT, CONTRACTE.DATA, CONTRACTE.VALOARE
FROM FURNIZORI RIGHT JOIN CONTRACTE ON
FURNIZORI.codfz=CONTRACTE.CODFZ
WHERE (((FURNIZORI.localitate)="bucuresti") And
(year(CONTRACTE.DATA)=year(now())) And ((CONTRACTE.VALOARE)>10000));
3.

Numrul contractelor ncheiate pe zile i totalul valorii contractate pe fiecae zi

SELECT Count(CONTRACTE.NRCONTRACT) AS nrcontracte,


CONTRACTE.DATA, Sum(CONTRACTE.VALOARE) AS TOTAL FROM
CONTRACTE
GROUP BY CONTRACTE.DATA;

4. Lista furnizorilor din Iasi, Cluj si Deva care au data contractului n intervalul
(1.01.2012-31.12.2013)
SELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitate,
CONTRACTE.NRCONTRACT, CONTRACTE.DATA, CONTRACTE.VALOARE
FROM FURNIZORI RIGHT JOIN CONTRACTE ON FURNIZORI.codfz =
CONTRACTE.CODFZ
WHERE (((FURNIZORI.localitate)="iasi" Or (FURNIZORI.localitate)="cluj" Or
(FURNIZORI.localitate)="deva") AND ((CONTRACTE.DATA) Between (#1/1/2012#)
And (#12/31/2013#)));
5.

Informatii despre toate contractele n afar de contractual 111.

SELECT [Nrcontract], codfz, DATA


FROM CONTRACTE
WHERE CODFZ NOT IN
(SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111));
6. Informatii numai despre contractual 111.
SELECT [Nrcontract], codfz, DATA
FROM CONTRACTE
WHERE CODFZ IN
(SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111));
7. Numrul contractelor ncheiate cu furnizorii pe fiecare data calendaristica.
SELECT Count(CONTRACTE.NRCONTRACT) AS nrcontracte, CONTRACTE.DATA
FROM CONTRACTE
GROUP BY CONTRACTE.DATA;
8. Valoarea total a contractelor pe fiecare data calendaristic.
SELECT CONTRACTE.DATA, Sum(CONTRACTE.VALOARE) AS TOTAL
FROM CONTRACTE
GROUP BY CONTRACTE.DATA;
9. Afiarea numelui furnizorilor care nu au contracte
SELECT FURNIZORI.codfz, FURNIZORI.denfz, FURNIZORI.localitate
FROM FURNIZORI LEFT JOIN CONTRACTE ON FURNIZORI.[codfz] =
CONTRACTE.[CODFZ]
WHERE (((CONTRACTE.CODFZ) Is Null));
10.Actualizarea valorii contractelor prin adaugarea valorii 2 pentru furnizorii din
CLUJ.

UPDATE CONTRACTE INNER JOIN FURNIZORI ON CONTRACTE.CODFZ =


FURNIZORI.codfz
SET CONTRACTE.VALOARE = CONTRACTE.VALOARE+2
WHERE (((FURNIZORI.localitate)="cluj"));
Se d structura tabelului: PERSONAL(CNP,NUME,DATAN,SALARIU)
S se afieze:
Numele care ncep cu litera P.
SELECT nume
FROM personal
WHERE ( left(nume,1)="P");
Numele care au pe ultimele trei pozitii SRL
SELECT nume from personal
WHERE (Right(nume,3)="SRL");
Numele care au n coninut terminaia SRL
SELECT personal.nume
FROM personal
WHERE (nume Like "*SRL");

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