Baze de Date Exemple Interogari SQL

June 5, 2017 | Author: Anonymous | Category: SQL
Share Embed


Short Description

EXEMPLE DE INTEROGARI IN SQLSe dau tabelele cu structura din imaginea de mai jos. COMPUNERE CU WHERE a) 2 tabele. Sa se ...

Description

EXEMPLE DE INTEROGARI IN SQL Se dau tabelele cu structura din imaginea de mai jos.

COMPUNERE CU WHERE a) 2 tabele. Sa se afiseze informatii privind facturile emise inclusiv valoarea facturata pentru 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; b) 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 2 tabele – 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;

a) 2 tabele 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;

b) 2 tabele 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;

Functii agregat a) SELECT DISTINCT Max(a5) AS [a5_Maxim], Min(a5) AS [a5_Minim], Avg(a5) AS [a5_Medie] FROM A; b) SELECT COUNT(*) AS [Număr de tupluri] FROM A; Afișarea valorii pe fiecare carte facturată în luna martie 2014 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])=2014; 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], [FACTURI-NOI].[CODMARFA], [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#); Afișarea totalului cantităților facturate pe fiecare marfă și pentru fiecare client ( cu Transform). 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- afișarea totalului valoric pentru mărfurile facturate pe fiecare client SELECT [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURI-FACTURI].[DEN-CL], Sum([CLIENTI-MARFURI-FACTURI].VALOARE) AS SumOfVALOARE FROM [CLIENTI-MARFURI-FACTURI] GROUP BY [CLIENTI-MARFURI-FACTURI].[COD-CL], [CLIENTI-MARFURI-FACTURI].[DEN-CL]; Majorarea cu 20% a pretului în facturile clientilor având codul>20. UPDATE [facturi-noi] SET PRET = pret*1.2 WHERE ([cod-cl]>20); Afișarea informațiilor 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 clienții ce au în factură codfiscal=555. SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATE FROM CLIENTI WHERE CLIENTI.[CODFISCAL] IN (SELECT FACTURI.[CODFISCAL] FROM FACTURI WHERE FACTURI.[CODFISCAL]="555"); Din ce localități sunt clienții ce nu au în factură codfiscal=555. SELECT CLIENTI.[CODFISCAL], CLIENTI.LOCALITATE FROM CLIENTI WHERE CLIENTI.[CODFISCAL] NOT IN (SELECT FACTURI.[CODFISCAL] FROM FACTURI WHERE FACTURI.[CODFISCAL]="555"); Se dă structura tabelelor: FURNIZORI(CODFZ, DENFZ, LOCALITATE) CONTRACTE(NUMAR CONTRACT, DATA, VALOARE CONTRACT, CODFZ) Se cere să scrieţi frazele SQL pentru următoarele cerinţe: 1. Afișarea codului furnizorilor și numărului de contract pentru furnizorii 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.

Numărul contractelor încheiate in fiecare zi și totalul valorii contractate in ziua respectiva

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.201231.12.2014) 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/2014#))); 5.

Informatii despre toate contractele, în afară de contractul 111.

SELECT [Nrcontract], codfz, DATA FROM CONTRACTE WHERE CODFZ NOT IN (SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111)); 6. Informatii referitoare numai despre contractul 111. SELECT [Nrcontract], codfz, DATA FROM CONTRACTE WHERE CODFZ IN (SELECT CODFZ FROM CONTRACTE WHERE (NRCONTRACT=111)); 7. Numărul contractelor încheiate cu furnizorii in fiecare zi 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. Afișarea 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)); Se dă structura tabelului: PERSONAL(CNP,NUME,DATAN,SALARIU) Să se afișeze: 1. Numele care încep cu litera P. SELECT nume FROM personal WHERE (Left(nume,1)="P"); 2. Numele care au pe ultimele trei pozitii terminatia “SRL” SELECT nume from personal WHERE (Right(nume,3)="SRL"); 3. Numele care au în conținut terminația “SRL” SELECT personal.nume FROM personal WHERE (nume Like "*SRL");

View more...

Comments

Copyright © 2017 DATENPDF Inc.