Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Clauza HAVING

sql



+ Font mai mare | - Font mai mic



Clauza HAVING

Cea mai simpla definitie ar fi: clauza HAVING este WHERE-ul ce opereaza la nivel de grupuri. Daca WHERE actioneaza la nivel de tuplu, selectand acele linii care indeplinesc o conditie specificata, HAVING permite specificarea unor conditii de selectie ce se aplica grupurilor de linii create prin clauza GROUP BY



Din rezultat sunt eliminate toate grupurile care nu satisfac conditia specificata. Formatul general este:

SELECT coloana 1, coloana 2, , coloana n

FROM lista_tabele

GROUP BY coloana_de_regrupare

HAVING criteriu_de_regrupare

Care sunt zilele in care s-au ridicat cel putin 2 burse?

SELECT data_incasarii, COUNT (*) AS Nr_burse

FROM BURSA

GROUP BY data_incasarii

HAVING COUNT (*) > = 2

data_incasarii

nr_burse

16-Feb-04

18-Feb-04

Figura 4.69. Zilele in care s-au ridicat cel putin doua burse

Care sunt cartile pentru care s-au cheltuit peste 10.000.000 lei?

SELECT titlu, SUM (pret_unitar*nr_exemplare) AS Suma_cheltuita

FROM CARTE

GROUP BY titlu

HAVING SUM (pret_unitar*nr_exemplare) > 10000000

titlu

suma_cheltuita

Bazele contabilitatii

Conception orientee objets

Contabilitate de gestiune

Contabilitate generala

Economie Politica

Informatica de gestiune

Teoria generala a dreptului

Figura 4.70. Cartile pentru care s-au cheltuit peste 10.000.000 lei

Sinteza

Acest capitol a avut ca obiectiv prezentarea detaliata a celui mai puternic limbaj structurat pentru interogarea bazelor de date relationale. Dupa ce in primul subcapitol am realizat prezentarea generala a limbajului in subcapitolul urmator am trecut la descrierea elementelor de baza ale interogarilor SQL (SELECT FROM WHERE). Tot aici am realizat (pentru o mai buna intelegere a limbajului) si o paralela intre clauzele principale ale frazei SELECT cu operatorii algebrei relationale prezentati in capitolul 3.

Toate elementele prezentate pe parcursul acestui capitol (optiunea ORDER BY, operatorii LIKE, BETWEEN, IN, theta si echijonctiunea, sinonime locale si jonctiunea unei tabele cu ea insasi, subconsultari, functii agregat, gruparea tuplurilor) pentru fundamentare au fost asociate cu o serie de exemple practice (pentru toate aceste exemple, s-au folosit tabelele din ANEXA) atat in standardul SQL-92 cat si in Visual FoxPro.

Studiu de caz

Se considera urmatoarea baza de date:

PACIENT (codpacient, nume, prenume, datanasterii, localitate)

PROGRAMARE (nrprogramare, dataprogramare, oraprogramare, codpacient)

CONSULTATIE (nrconsultatie, tipconsultatie, codpacient, dataconsultatie)

MEDICI (codmedic, numemedic, prenumemedic)

MEDIC_CONSULTATIE (nrconsultatie, codmedic)

TARIFE (tipconsultatie, tarif)

Folosind comenzi SQL sa se determine:

Care sunt pacientii din Targoviste;

Care sunt pacientii din Targoviste si Titu;

Care pacienti nu sunt din Targoviste si Titu;

Care sunt pacientii care s-au nascut in anul 1989;

Care sunt tarifele mai mari de 25 RON;

Din ce localitati sunt pacientii din baza;

Care este nume si prenumele medicilor care ofera consultatii;

Care sunt tarifele practicate;

Din ce localitate sunt pacientii nascuti in luna ianuarie 1990;

Care sunt orele pentru care sunt prevazute consultatii in data de 09.02.2006;

Cum se numesc pacientii din Targoviste si Moreni;

Care este prenumele medicilor cu numele de familie Ghionea;

La ce data si la ce ora are programare Popa Georgeta;

Care sunt datele la care au facut programare pacientii din Targoviste;

Numele pacientilor care au fost consultati in luna februarie 2006;

Data la care a facut programare Dinescu Mircea si Vancea Ioan;

Numele medicilor care au acordat consultatii in data de 23.02.2006;

De ce medic a fost consultata Popa Georgeta;

Numele pacientilor consultati de Grecu Anca;

Nume pacientilor care au facut programare si in luna ianuarie si in luna februarie 2006;

Care este tariful consultatiei pacientului Popa Georgeta;

Numele pacientilor care au facut programare in data de 10.02.2006 in intervalul 14-16;

Datele la care au efectuat consultatii Grecu Anca si Minea Ion in luna februarie 2006;

Numele si prenumele medicilor care au consultat pacienti din Targoviste si Moreni dar nu din Titu;

Nume pacientilor care au avut programare in data de 10.20.2006 in intervalul 12-14 si au fost consultati de catre Grecu Anca.

Numele si prenumele in ordine alfabetica al pacientilor pe localitati;

Numele si prenumele pacientilor pe zile de programare;

Numele si prenumele pacientilor pe zile de consultatie;

Cate consultatii a acordat Grecu Anca in luna februarie 2006;

Cat a primit Grecu Anca in luna februarie 2006 pentru consultatiile acordate, stiut fiind faptul ca fiecare medic primeste un onorariu de 10 RON pentru fiecare consultatie acordata;

Cate programari a facut pacientul Popa Georgeta;



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1754
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved