Sie sind auf Seite 1von 23

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular

disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

UTM, Curs master:

TEHNOLOGII INFORMATICE UTILIZATE N MEDIUL DECIZIONAL I


Titular disciplin: Lect.univ.drd. VASILCIUC BOGDAN GABRIEL bogdan.vasilciuc@yahoo.com
Scopul cursului: Cursul se adreseaza celor care sunt initiati in Microsoft Windows si doresc sa cunoasca instrumente informatice moderne de elaborare a deciziilor; Cursul se va axa pe organizarea datelor in baze de date/depozite de date, ca mijloc de integrare a datelor operationale, si pe modelarea multidimensionala a acestora in scopul obtinerii de meta-informatii pentru luarea deciziilor; In acest scop, in aceasta prima parte a cursului se va prezenta Sistemul de Gestiune a Bazelor de Date SQL Server, considerat cel mai performant produs al firmei Microsoft pentru crearea si exploatarea depozitelor de date; Orientarea aplicatiilor pe probleme din domeniul financiar-contabil.

Continutul cursului: Sistemul de Gestiune a Bazelor de Date SQL Server 2008; Organizarea si exploatarea bazelor de date SQL Server; Limbajul Transact-SQL ; Depozite de date; Studiu de caz Analiza cifrei de afaceri la o societate comerciala.

Resurse web http://sites.google.com/site/bogdanvasilciuc

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

SQL SERVER 2008


Caracteristici SQL Server gestioneaza date stocate in baza de date, proceseaza tranzactii si pregateste informatii pentru procesele decizionale; SQL Server este un SGBD (Sistem de Gestiune a Bazelor de Date) conceput dupa modelul client server, format din doua entitati: entitatea server care cuprinde baza de date si utilitarele SQL Server; entitatea client formata din statiile de lucru, de unde sunt lansate interogari, care se proceseaza pe server, iar de aici se returneaza numai informatiile cerute. SQL Server gestioneaza doua tipuri de baze de date: baze de date organizate dupa modelul relational OLTP (OnLine Transaction Processing); baze de date organizate multidimensional OLAP (OnLine Analytical Processing). Utilizatorii au acces la SQL Server prin: comenzi Transact-SQL (T-SQL); limbajul MDX (MultiDimensional eXpression), un limbaj propriu serviciului OLAP, pentru date orgnizate multidimensional.

Utilitarele SQL Server


Sunt accesibile din grupul de programe din meniul START All Programs Microsoft SQL Server 2008: Import and Export Data utilitar ce lanseaza DTS Wizard (serviciu de transformare a datelor, care preia date din diverse surse pentru aducerea lor in formatul cerut de prelucrarea multidimensionala); SQL Server Business Intelligence Development Studio utilitar care permite crearea de rapoarte, pentru prezentarea datelor in retea dar si in spatiul web (pe internet, utilizand browsere de navigare); SQL Server Management Studio interfata grafica de dezvoltare si administrare a proiectelor SQL Server; Integration Services utilitar pentru deservirea accesibilitatii cu alte aplicatii care utilizeaza baze de date; Configuration Tools utilitar destinat administratorilor de baze de date.

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Baza de date
Este un ansamblu structurat de date legate funcional ntre ele. Este o structura omogena in care se pastreaza datele. D.p.d.v. fizic, baza de date este o colectie de obiecte: tabele, diagrame, view-uri, proceduri memorate etc. SGBD (Sistemul de Gestiune a Bazelor de Date) este un ansamblu de programe care asigur interfaa dintre utilizator i baza de date. Prin aceast interfa se realizeaz operaiile de creare, actualizare i consultare (adaugare, stergere, modificare) a bazei de date. Principalele SGBD sunt: 1. de tip local n reele mici Microsoft Access, Microsoft Visual FoxPro 2. de tip client server: Microsoft SQL Server, Sybase SQL Server 3. de tip complex: Oracle, Java SQL Server are doua categorii de baze de date: baze de date sistem, grupate in System Databases: .master contine legaturi la toate bazele de date instalate; .model este un sablon pentru crearea bazelor de date utilizator; .pubs este o baza de date demonstrativa; .tempdb locul unde se efectueaza operatiile de sortare. baze de date utilizator

Obiectele bazei de date:


Tabele obiect ce contine structurile bazei de date si datele propriu-zise; Diagramele obiect ce defineste legaturile intre tabele; View-uri interogari memorate in baza de date; Proceduri memorate (Stored Procedures) secvente de cod T-SQL stocate in baza de date; sunt pastrate sub forma de fisiere; Triggere proceduri memorate cu un caracter special.

Tabela
Este obiectul din baza de date destinat stocrii datelor despre o entitate, o operaie economic, o tranzacie.

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Tabela conine att structura datelor ct i datele propriu-zise (nregistrrile). Structura cuprinde informaii privind numele datelor, tipurile de date, proprietile acestora, cheile de identificare i indecii de cutare. Datele se refer la mulimea nregistrrilor din tabel. Particularitati: Inregistrarea un rand din tabela; Campul o coloana cu o denumire unica si un tip de data; Domeniu multimea valorilor dintr-un camp; Cheia un camp sau mai multe campuri ale caror valori identifica inregistrarea (grup de inregistrari). Cheia poate fi: - cheie primara prin care se identifica unic o inregistrare; - cheie externa (straina) pentru a face legaturi intre tabele; - cheie compusa (concatenata) prin care se identifica unic un grup de inregistrari; functioneaza ca o cheie primara pe mai multe campuri. numele de cmp este un ir de maximum 64 caractere; pentru numele de cmpuri nu se fac deosebiri ntre literele mici i literele mari; nu se admit caracterele : punct (.), semnul exclamrii (!), paranteze drepte ([ ]) si spatiu.

Reguli pentru definirea numelor de cmpuri

Principalele tipuri de date


Numerice - intregi tinyint smallint int bigint decimal numeric char(n) Micut 0 255 Mic +/- 32.767 Intreg +/- 2 miliarde Mare Trebuie precizat numarul total de cifre de la dreapta punctelor zecimale Siruri de lungime fixa. Daca se introduce mai putine caractere se completeaza cu spatii Siruri de lungime variabila Date calendaristice, inclusiv h:m:s Date calendaristice

- exacte Siruri

Date calendaristice

varchar(n) datetime smalldatetime

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Exemplu: Baza de date VANZARI - sursa de date: documentul primar Factura si alte colectii de date.
Date furnizor . . Date beneficiar . .

FACTURA Numar factura Data facturii ...

Cod produs

Denumire produs

UM

Cantitate

Pret unitar

Valoare

TVA

Observatii: In factura putem avea mai multe tranzactii pentru produse diferite. Pentru fiecare tranzactie din factura trebuie asociate aceleasi date comune: nrfactura, datafact, datele clientului, datele furnizorului. Intr-o perioada de gestiune putem avea mai multe tranzactii pentru acelasi produs. In acest caz continutul unor campuri se repeta (ex. denumire produs, um, cantitate, pret unitar). In consecinta, pentru reducerea spatiului de stocare si pentru cresterea performantelor datele din factura se descompun in mai multe tabele. o Un tabel cu datele de identificare a fiecarei facturi; o Un tabel care sa cuprinda datele de identificare pentru fiecare tranzactie (facturarea, contractarea); o Un tabel care sa cuprinda datele constante pentru fiecare produs; o Un tabel cu datele de identificare a clientilor (furnizorilor); o Un tabel cu datele de identificare a contractelor; o Un tabel cu datele de identificare a locurilor de expeditie (magazie).

Tabele rezultate au urmatoarea structura:


Clienti (codclient, denclient, loc, adresa, jd, telefon, banca, contbanca) Contracte (nrcontract, codprodus, datacontract, codclient, cant, pret) Produse (codprodus, denprodus, um) Facturi (nrfactura, datafactura, codclient, nrcontract, codmagazin, IDpromotie)
5

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Randfactura (nrfactura, codprodus, cant, pret) Docincasare (nrdoc, datainc, sumainc, nrfactura) Magazine (codmagazin, denmagazin, loc, adresa, jd, numegest) Promotii (IDpromotie, numepromotie, costpromotie, datainceput, datasfarsit, tippromotie)

Crearea tabelelor
Se realizeaza prin: - utilitarul Microsoft SQL Server Management Studio; - comenzi T-SQL, generate in fereastra New Query.

Crearea tabelelor cu Microsoft SQL Server Management Studio


- Databases / Vanzari / Tables / clic dreapta, New Table; - Se specific un nume dat tabelei si se valideaz cu OK.

Realizarea legaturilor intre tabele


Se realizeaza in Database Diagrams: - clic dreapta Database Diagrams / New Database Diagrams; - din fereastra Add Table sunt selectate succesiv tabelele care vor fi supuse relationarii si se apasa butonul Add; - se inchide fereastra Add Table si se realizeaza legaturile prin tehnica drag&drop.

Tipuri de relatii:
- Relatia 1 1: unei inregistrari dintr-o tabela ii corespune o inregistrare din alta tabela; se realizeaza intre doua campuri cheie primara din tabele diferite. Studeni nume pren facult an gr nrleg 101 102 103 1-1 Taxe suma de plata suma platita nrleg 101 102 103
6

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Tabelele aflate ntr-o astfel relaie pot fi reconsiderate ntr-un singur tabel, ns, datorit faptului c au o frecven diferit de consultare i actualizare, datele se recomand a fi organizate n tabele diferite. - Relatia 1 n: unei inregistrari dintr-o tabela ii corespunde 0, 1, sau mai multe inregistrari din alta tabela; se realizeaza intre un camp cheie primara si un camp cheie secundara (sau un camp care participa la o cheie compusa) din tabele diferite. Produse codprodus denprodus 10101001 placa de baz 10201001 placa video um buc buc Randfactur nrfactura 120 121 122 122 codprodus cant pret 10101001 10101001 10201001 10101001

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Exe: un produs poate sa apara pe mai multe facturi (produsul cu codul 10101001 apare pe factura 120, 121, 122) - Relatia m n: unei inregistrari dintr-o tabela ii corespunde 0, 1, sau mai multe inregistrari din cea de-a doua tabela, iar unei inregistrari din cea de-a doua tabela ii corespunde 0, 1, sau mai multe inregistrari din prima tabela; se realizeaza intre doua campuri cheie externa (sau campuri care participa la o cheie compusa) din tabele diferite.

Incarcarea tabelelor cu date


Se realizeaza prin: utilitarul Microsoft SQL Server Management Studio, cu clic dreapta pe tabela / Edit Top 200 Rows; apare structura de tabel unde se introduc datele; datele se introduc rand cu rand, de la stanga la dreapta. comenzi T-SQL (Insert Into Values).

Codificarea datelor
Scop: economisire spatiu stocare, facilitati de regasirea informatiilor, stabilirea unor relatii de reprezentare a informatiilor. Exemplu: O firm comercializeaz componente de calculatoare, codul produsului este format din 8 caractere numerice.
Clasa produsului Subclasa produsului Sortimentul

XXXXXXXX - primele 2 caractere reprezint clasa produsului; - caracterul 3 i 4 reprezint subclasa produsului; - ultimele 4 caractere reprezint sortimentul.

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Exemplu: Evidena studenilor. Tabela Cursuri are urmtoarea structur: codcurs, dencurs, formaev, nrcredite. Codul cursului este un cod alfanumeric format din 8 caractere.

FZ22OB01 FZ22OB05 CD22OB03

Matematici Baze de date Finane

E PV E

4 5 5

Clasificarea codurilor
dup natur:

- coduri numerice 10101001 - coduri alfabetice BRD - coduri alfanumerice FZ22OB01 dup controlul codurilor i al erorilor - coduri autodetectoare de erori: acest tip de cod permite determinarea unei erori din structura codului prin intermediul unui caracter de control plasat pe ultima poziie a codului.

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Crearea tabelelor prin comenzi T-SQL


Comanda CREATE TABLE Sintaxa: CREATE TABLE nume-tabela (nume-camp1 tip-data [IDENTITY / restrictie / NULL / NOT NULL / PRIMARY KEY], nume-camp2 tip-data [IDENTITY / restrictie / NULL / NOT NULL / PRIMARY KEY], []) unde: IDENTITY permite folosirea, in table, a unor valori generate de sistem pentru identificarea unica a inregistrarilor; restrictie reprezinta o definitie prin care se impune intergritatea referentiala si integritatea pe domeniu, si poate fi: - restrictie prestabilita: [CONSTRAINT nume-restrictie] DEFAULT expresie-constanta - restrictie de verificare: [CONSTRAINT nume-restrictie] CHECK expresie NULL / NOT NULL stabileste daca un camp poate avea sau nu valori nule; PRIMARY KEY precizeaza cheia primara. Exemple: a) crearea tabelei Facturi cu cheia primara pe un camp --- se definesc, pe rand, toate campurile:
CREATE TABLE Facturi (Nrfactura Varchar(10) Not Null Primary Key, Datafactura DateTime Not Null, Codclient Varchar(13) Not Null, Nrcontract Int, Codmagazin Int Not Null, IDpromitie Int)

b) crearea tabelei Randfactura cu cheia primara pe doua campuri --- se definesc, pe rand, campurile tabelei, iar la sfarsit se insereaza cheia primara pe campurile participante:
CREATE TABLE Randfactura (Nrfactura Varchar(10) Not Null, Codprodus Int Not Null, Cant Decimal(10,2) Not Null,

10

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel Pret Decimal(10,2) Not Null, Primary Key(Nrfactura, Codprodus))

c) crearea tabelei IDPromotie cu: - restrictii de verificare (CHECK) care asigura integritatea pe domeniu; - restrictii cheie straina (FOREIGN KEY) / NU ESTE CAZUL - crearea unui index unic pe campul Numepromotie.
CREATE TABLE Promotii (IDpromotie Int Not Null Primary Key CHECK(IDpromotie Between 1 And 10), Numepromotie Varchar(50) Not Null CHECK(numepromotie=Aniversare 1 an OR numepromotie=Mos Craciun 2007) COSNTRAINT IDprom UNIQUE (numepromotie), Codpromotie Decimal(10,2) Not Null, Datainceput SmallDateTime Not Null, Datasfarsit SmallDateTime Not Null, Tippromotie Char(10) Not Null CHECK (Tippromotie=Fluturasi OR Tippromotie=RadioTV OR Tippromotie=Presa))

Interogarea datelor
Consta din extragerea informatiilor din baza de date Se realizeaza cu: o utilitarul Microsoft SQL Server Management Studio / Views o prin comenzi T-SQL; sintaxele se scriu in fereastra New Query, generata prin apasarea butonului New Query din interfata principala.

Interogari prin Microsoft SQL Server Management Studio


Views / New View / se selecteaza tabela (tabelele) si ADD; Se trag campurile pe grila, sau se bifeaza campul dorit din tabela; Se pot defini campuri calculate si se pot introduce criterii de selectie; Din meniul Query Designer se alege Execute SQL.

11

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Interogari prin comenzi T-SQL


Sintaxa simplificata: SELECT [ALL / DISTINCT] lista-campuri [INTO tabel-nou] FROM lista-tabele [WHERE criteriu-selectie] [GROUP BY criteriu-grupare] [HAVING criteriu-selectie-grupuri] [ORDER BY nume-camp [ASC/DESC] [, ]] unde: DISTINCT elimina din lista de rezultate inregistrarile duplicate pe baza campurilor din fraza SELECT. Ex1. Sa se afle pentru ce produse au existat vanzari (tabela Randfactura) use vanzari_tj SELECT DISTINCT Codprodus FROM Randfactura ORDER BY Codprodus Lista returnata:

Observatie: se utilizeaza comanda Use nume_db in scopul utilizarii bazei de date din care se doreste extragerea datelor; daca nu se specifica aceasta comanda se incearca extragerea datelor din baza de date master, iar ca urmare nu se vor returna datele solicitate. INTO tabel-nou determina crearea unei tabele pe baza datelor din alte tabele. Se realizeaza numai in Query Analyzer.

12

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Ex2. Sa se creeze o noua tabela cu date valorice despre tranzactionarea unor produse use vanzari_tj SELECT Facturi.Nrfactura, Datafactura, Codprodus, Codclient, Cant, Pret, Cant*Pret As Valoare INTO Vanzari2005 FROM Facturi INNER JOIN Randfactura ON Facturi.Nrfactura=Randfactura.Nrfactura WHERE Datafactura Between '1/1/2005' AND '12/31/2005'

FROM lista-tabele WHERE criteriu-selectie GROUP BY grupeaza datele (inregistrarile) care satisfac eventual clauza WHERE HAVING stabileste criteriul pentru determinarea returnarii rabdurilor centralizatoare

Operatori si functii utilizate la realizarea interogarilor (vederilor)


Operatori aritmetici: +, -, *, /, % (Modulo) Daca intr-o operatie se folosesc mai multe tipuri de date, tipul mai mic este convertit in tipul mai mare.

13

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Functii matematice ROUND(valoare, n) rotunjeste expresia numerica la o valoare cu n zecimale. Functii pentru siruri LEFT(sir, n) returneaza n caractere din stanga sirului RIGHT(sir, n) returneaza n caractere din dreapta sirului SUBSTRING(sir, pozitie, numar) returneaza din expresie un subsir, de la o anumita pozitie STR(valoare) converteste datele numerice in siruri de caractere LOWER(sir) converteste expresia in litere mici UPPER(sir) conerteste espresia in litere mari LTRIM(sir) returneaza expresia fara spatii la inceput RTRIM(sir) returneaza expresia fara spatii la sfarsit SPACE(sir) returneaza un sir de spatii egal cu o expresie intreaga Functii pentru date calendaristice Day(data) returneaza ziua Month(data) returneaza luna Year(data) returneaza anul GetDate() returneaza data si ora curente DateADD(data, perioada, numar) adauga la data numarul de componente DateDiff(perioada, data1, data2) returneaza numarul de componente dintre doua date DatePart(perioada, data) returneaza valoarea intreaga a unei componente specificate pentru data mentionata Operatori de comparatie: <, <=, >, >=, =, <>, LIKE, NOT LIKE Operatori asociati operatorilor de comparatie: +=, -=, &=, *=, /=, \=, ^= Operatori logici: OR, AND, NOT, XOR, AndAlso, OrElse Operatori de concatenare: &, + Exemple de utilizare a operatorilor si functiilor Ex3. Camp calculat se utilizeaza tabela Randfactura use vanzari_tj SELECT Codprodus, Cant, Pret, ROUND(Cant*Pret, 2) As Valoare FROM Randfactura
14

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Lista returnata:

Ex.4 Vanzarile de produse din clasa Soft (20) use vanzari_tj SELECT Left(str(codprodus, 8, 0), 2) As [Clasa Soft], Cant, Pret, Cant*Pret As Valoare FROM Randfactura WHERE Left(str(codprodus, 8, 0), 2) = 20 Lista returnata:

15

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Ex5. Vanzarile de produse din clasa Hard (10), subclasa Placa de baza (10) use vanzari_tj SELECT Left(str(codprodus, 8, 0), 4) As [Clasa Hard Subclasa Placa de baza], Cant, Pret, Cant*Pret As Valoare FROM Randfactura WHERE (Left(str(codprodus, 8, 0), 2) = 10) AND (Substring(str(codprodus, 8, 0), 3, 2) = 10) Lista returnata:

Ex6. Extragerea datei curente si a orei curente use vanzari_tj SELECT GetDate() As [Data si ora curenta] Lista returnata: Ex7. Extragerea datei curente fara ora curenta use vanzari_tj SELECT Convert(Char(8), GetDate(), 2) As Data Lista returnata:

16

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Ex8. Se extrag datele din tabela Facturi pentru a obtine data scadenta (+15 zile) privind achitarea facturii si a numarului de zile de intarziere fata de data scadenta use vanzari_tj SELECT Nrfactura, Datafactura, Codclient, DateAdd(dd, 15, Datafactura) As [Data scadenta], DateDiff(dd, DateAdd(dd, 15,Datafactura), GetDate()) As [Nr zile intarziere] FROM Facturi Lista returnata:

17

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Corelarea tabelelor
Sintaxa: SELECT lista-campuri FROM nume-tabela1 {INNER / OUTHER {LEFT / RIGHT / FULL} JOIN nume-tabela2 ON criterii de legatura Tipul de jonctiune INNER JOIN leaga doua tabele pe baza unei conditii de jonctiune, generand un nou tabel cu inregistrari care satisfac conditia. Ex10. Lista vanzarilor pentru produsul Placa de baza catre clientii N1034116, R984676, R7468214 - se utilizeaza tabelele Produse, Facturi, Randfactura use vanzari_tj SELECT Produse.Codprodus, Denprodus, Codclient, Cant, Pret, Str(Cant*Pret, 10, 2) As Valoare FROM Produse INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus INNER JOIN Facturi ON Randfactura.Nrfactura = Facturi.Nrfactura WHERE (Denprodus like 'Placa de baza%') And (Codclient IN('N1034116', 'R984676', 'R4948567')) Lista returnata:

Interogari pentru centralizarea datelor


- fara parametrizare in clauzele WHERE si HAVING Functii agregat AVG(nume-camp) returneaza media valorilor dintr-un camp numeric COUNT(nume-camp) returneaza numarul de valori MAX(nume-camp) extrage valoarea max. dintr-un domeniu de valori
18

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

MIN(nume-camp) extrage valoarea min. dintr-un domeniu de valori SUM(nume-camp / expresie) insumeaza valorile dintr-un camp numeric sau conforme cu o expresie Exemple: Ex11. Lista cu totalul vanzarilor cantitative si valorice pe fiecare produs - se utilizeaza tabelele Produse si Randfactura use vanzari_tj SELECT Produse.Codprodus, Denprodus, Str(Sum(Cant), 10, 2) As Tcantitate, Str(Sum(Cant*Pret), 10, 2) As Tvaloare FROM Produse INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus GROUP BY Produse.Codprodus, Denprodus ORDER BY Produse.Codprodus Lista returnata:

Ex12. Lista cu totalul vanzarilor cantitative si valorice pe un produs use vanzari_tj SELECT Produse.Codprodus, Denprodus, Str(Sum(Cant), 10, 2) As Tcantitate, Str(Sum(Cant*Pret), 10, 2) As Tvaloare FROM Produse INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus GROUP BY Produse.Codprodus, Denprodus HAVING Produse.Codprodus = 10101001 Lista returnata:

19

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Ex13. Centralizatorul cantitatilor contractate si vandute pe produse - se utilizeaza tabelele Produse, Contracte, Randfactura use vanzari_tj SELECT Randfactura.Codprodus, Denprodus, Str(Sum(Contracte.Cant), 10, 2) As [Cantitate contractata], Str(Sum(Randfactura.Cant), 10, 2) As [Cantitate vanduta], Str(Sum(Contracte.Cant Randfactura.Cant), 10, 2) As Diferenta FROM Produse INNER JOIN Contracte ON Produse.Codprodus = Contracte.Codprodus INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus GROUP BY Randfactura.Codprodus, Denprodus Lista returnata:

Operatorii ROLLUP si CUBE


Se utilizeaza in clauza GROUP BY pentru obtinerea de totaluri suplimentare Sintaxa: SELECT lista-campuri FROM lista-tabele [WHERE criteriu-selectie] GROUP BY campuri-grupare WITH {ROLLUP / CUBE}

20

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

ROLLUP genereaza randuri de subtotal si total general Ex14: Lista cu totalul vanzarilor pe clienti si produse - se utilizeaza tabelele: Clienti, Produse, Facturi, Randfactura use vanzari_tj SELECT Denclient, Denprodus, Str(Sum(Cant*Pret*1.19), 10, 2) As [Total valoare] FROM Produse INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus INNER JOIN Facturi ON Randfactura.Nrfactura = Facturi.Nrfactura INNER JOIN Clienti ON Facturi.Codclient = Clienti.Codclient GROUP BY Denclient, Denprodus WITH ROLLUP Lista returnata:

21

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

CUBE genereaza randuri de subtotal si total general precum si combinatii posibile Ex15: Lista cu totalul vanzarilor pe clienti si produse - se utilizeaza tabelele: Clienti, Produse, Facturi, Randfactura use vanzari_tj SELECT Denclient, Denprodus, Str(Sum(Cant*Pret*1.19), 10, 2) As [Total valoare] FROM Produse INNER JOIN Randfactura ON Produse.Codprodus = Randfactura.Codprodus INNER JOIN Facturi ON Randfactura.Nrfactura = Facturi.Nrfactura INNER JOIN Clienti ON Facturi.Codclient = Clienti.Codclient GROUP BY Denclient, Denprodus WITH CUBE

22

Universitatea Titu Maiorescu, Facultatea de Stiinte Economice Curs master : Tehnologii informatice utilizate in mediul decizional I, 2009_2010 Titular disciplina: Lect.univ.drd. Vasilciuc Bogdan Gabriel

Lista returnata:

23

Das könnte Ihnen auch gefallen