Sunteți pe pagina 1din 8

Seminar 3 SAS

Interogări

1. Selectarea coloanelor şi filtrarea câmpurilor


Problema 1: Creaţi un raport de frecvenţe care să afişeze numărul de furnizori ai companiei ABC
din fiecare ţară, exceptând Statele Unite (US). Pregătiţi datele pentru analiză prin crearea unei
interogări pe tabela Suppliers, creată prin importul foii de calcul Suppliers a fişierului
SupplyInfo.xls. Includeţi în interogare numai furniorii externi US şi numai următoarele coloane,
în ordinea: Country, CompanyName, City.
Paşi de urmat:
1. Deschideţi un proiect nou şi importaţi foia de calcul Suppliers a fişierului SupplyInfo.xls,
conform instrucţiunilor din Seminarul 1 SAS.
2. Având foia de calcul Suppliers selectată în arborele proiectului, apăsaţi butonul Query Bulider.
3. Redenumiţi interogarea Non_US_ Suppliers.
4. Specificaţi numele şi locaţia rezultatelor interogării, selectând şi dând fişierului
rezultat numele NonUS Suppliers.
5. Trageţi câmpurile Country, CompanyName şi City în tab-ul Select Data.
6. Filtraţi datele pentru a exclude rândurile care au ţara USA (Tab-ul Filter Data, butonul New
Filter). Preluaţi valorile datelor de comparat din tabela SAS folosind opţiunea .
7. Selectaţi Run pentru a ieşi din instrumentul Query Builder şi a genera rezultalele interogării.
Aceasta ar trebui să returneze 25 de rânduri.
8. De multe ori, în mod implicit, interogarea va avea ca rezultat un raport SAS. Acesta nu poate fi
folosit, mai departe, pentru realizarea unor prelucrări asupra datelor incluse în interogare.
Pentru a obţine raportul de frecvenţe, trebuie să modificăm rezultatul interogării astfel încât să
returneze o tabelă SAS. Faceţi click dreapta pe interogarea Non_US_ Suppliers în arborele
proiectului, Modify Non_US_ Suppliers. Apăsaţi butonul Options, Options for This Query,
panelul Results, Results format, bifaţi Override the corresponding defalut… şi selectaţi Data
table, în cazul în care nu este selectat. Selectaţi Run. Înlocuţi rezultatele rulării anterioare a
interogării, selectând butonul Yes în fereastra de dialog.
9. Pentru a obţine numărul furnizorilor din fiecare ţară, selectaţi interogarea, apoi Tasks
Describe One-Way Frequencies…
10. În tab-ul Data, asignaţi variabilei Country rolul de variabilă de analiză (Analysis variables).
11. În tab-ul Statistics selectaţi doar opţiunea de a afişa frecvenţele şi procentele.
12. Pentru a afişa ţările cu cei mai mulţi furnizori la începutul raportului, selectaţi tab-ul Results, şi
schimbaţi opţiunea câmpului Order output data by în Descending frequencies.
13. Selectaţi Run.
14. Salvaţi proiectul .

2. Crearea unei coloane calculate

Problema 2: Folosiţi Query Builder pentru a crea o coloană care calculează inventarul previzionat, care
se calculează ca sumă a unităţilor aflate în stoc şi a celor comandate.

Paşi de urmat:
1. La proiectul creat anterior, adăugaţi tabela products.
2. Având tabela products selectată în arborele proiectului, apăsaţi butonul Query Bulider.
3. Redenumiţi interogarea Projected Inventory Query.
4. Specificaţi numele şi locaţia rezultatelor interogării, selectând şi dând fişierului
rezultat numele ProjectedInventory.
5. În tab-ul Select Data plasaţi toate coloanele tabelei.
6. Apăsaţi butonul Computed Columns, New.
7. Selectaţi opţiunea care vă permite să calculaţi o coloană nouă pe baza unei formule de calcul,
Next.
8. Formula de calcul pentru noua coloană este UnitsInStock + UnitsOnOrder.
Atenţie! Folosiţi referirile la coloane din arborele Tables al editorului de expresii avansate când
introduceţi expresia de calcul!
9. Redenumiţi coloana ProjectedInventory.
10. Observaţi că noua coloană este adăugată în tab-ul Select Data.
11. Salvaţi proiectul .

3. Crearea unei coloane recodificate

Problema 3: Editaţi opţiunile interogării Projected Inventory pentru a calcula o nouă coloană numită
UnitCostLevel care grupează valorile costurilor unitare în trei categorii: de la 0$ la 14.99$, de la 15$ la
29.99$, şi peste 30 $.

Paşi de urmat:
1. În proiectul creat anterior, selectaţi interogarea Projected Inventory Query, click dreapta,
Modify…
2. Apăsaţi butonul Computed Columns, New.
3. Selectaţi opţiunea care vă permite să calculaţi o coloană recodificată, Next.
4. Selectaţi coloana UnitCost , Next.
5. Apăsaţi Add, tab-ul Replace a Range.
6. Stabiliţi trei clase pentru preţurile produselor. Setaţi opţiunea Set a lower limit la valoarea 0 şi
Set an upper limit la valoarea 14.99. În câmpul With this value 0 to 14.99 dollars. Bifati optiunea
Enclose this value in quotes
Selectaţi OK.
7. Repetaţi operaţiile de la punctele 5 şi 6 şi pentru celelalte două intervale de valori.
8. Pentru a recodifica prin valori lipsă toate celelalte valori posibile, selectaţi în Other values,
opţiunea A Missing Value.
9. Specificaţi că noua coloană este de tip caracter.
10. Denumiţi noua coloană UnitCostLevel.
11. Nu asignaţi nici un format de afişare pentru coloana calculată.
12. Selectaţi OK  Close
13. Selectaţi Run şi Yes atunci când sunteţi întrebaţi dacă vreţi să păstraţi rezultatele anterioare ale
interogării.
14. Selectaţi în fereastra arborelui proiectului sau în fereastra fluxului de proces, tabela
ProjectedInventory. Analizaţi datele din tabelă folosind prelucrarea Tasks  Describe  Table
Analysis.
15. În tab-ul Data asignaţi coloanelor UnitCostLevel and CategoryName rolul de variabile ale tabelei.
16. În tab-ul Tables plasaţi coloana UnitCostLevel deasupra câmpului <drag variables here>, iar
coloana CategoryName deasupra tabelei în fereastra Preview.
17. Selectaţi Run şi examinaţi rezultatele. Care sunt categoriile care au cele mai multe produse în
fiecare dintre cele trei clase de preţuri? Dar cele mai puţine? Care este categoria reprezentată cel
mai echilibrat în cele trei clase de preţuri?
18. Salvaţi proiectul .
4. Joncţiunea tabelelor

Problema 4: Folosiţi instrumentul Query Builder pentru a realiza joncţiunea a trei tabele care conţin
informaţii despre furnizori, produse şi comenzi. Creaţi o nouă coloană care calculează profitul realizat
pentru fiecare comadă.

Paşi de urmat:
1. Faceţi click dreapta pe tabela products şi selectaţi Query Bulider…
2. Denumiţi interogarea Profit Query, iar tabela rezultată Profit.
3. Includeţi şi alte tabele în interogare, Add Tables….
4. Din proiectul activ adăugaţi tabela rezultată în urma importului foii de calcul Suppliers a fişierului
SupplyInfo.xls. Aceasta o veţi găsi sub denumirea SASUSER.SUPPLIERS.
5. Includeţi în interogare şi tabela ordersFinal, din locaţia în care aţi salvat datele de lucru pentru
seminar.
6. SAS Enterprise Guide încearcă să găsescă coloane corespondente între cele trei tabele, pe baza
cărora să realizeze operaţia de joncţiune. Deoarece nu există coloane comune între tabela
ordersFinal şi celelalte două tabele incluse, este afişat mesajul:

7. Selectaţi OK.
8. Observaţi joncţiunea realizată automat între tabelele şi SUPPLIERS, datorată existenţei unei coloane
comune, SupplierID,care are acelaşi nume şi tip în ambele tabele.
9. Pentru a realiza o joncţiune manuală între tabelele ordersFinal şi products, faceţi click pe coloana
ProdID în tabela ordersFinal, ţineţi mouse-ul apăsat şi trageţi cursorul deasupra coloanei ProductID
din tabela products, apoi eliberaţi butonul mouse-ului. Selectaţi Close.

10. Adăugaţi în interogare următoarele coloane în această ordine: din tabela SUPPLIERS: Country,
CompanyName şi City, din tabela products: ProductName, QuantityPerUnit, UnitCost şi
CategoryName, din tabela ordersFinal: Quantity, SellPrice şi Revenue.
11. Calculaţi, folosind editorul avansat de expresii, o nouă coloană numită Profit, după formula
(SellPriceUnitCost)Quantity.
12. Stabiliţi pentru coloana Profit, tipul Currency, formatul de afişare DOLLARw.d cu lăţimea 8 şi 2
zecimale.
13. Filtraţi datele pentru a include numai furnizorii din Europa.
14. Selectaţi Run pentru a executa interogarea şi a ieşi din Query Bulider.
15. Să se analizeze, folosind un grafic de tip Pie, care sunt ţările europene importatoare care au adus
cele mai mari valori ale profitului (ca procent şi valoare absolută) companiei ABC.

5.Interogări cu parametri

Problema 5: Pornind de la tabela Profit realizată la problema anterioară, creaţi o tabelă SAS care să
conţină profitul total generat de fiecare furnizor, interogare care să includă un parametru pentru coloana
Profit. Pornind de la acest parametru, creaţi un filtru astfel încât numai furnizorii care au generat
profituri mai mari decât o valoare specificată de utilizator să fie incluşi în interogare. Folosiţi apoi
prelucrarea List Data pentru a realiza un raport al furnizorilor selectaţi.

Paşi de urmat:
16. Deschideţi tabela Profit. Pe bara de meniu de deasupra grilei de date, selectaţi Describe Summary
Statistics Wizard .
17. La Pasul 1 nu modificaţi nici o opţiune.
18. La Pasul 2 selectaţi ca variabilă de analiză profitul şi ca variabile de grupare ţara şi numele companiei
furnizoare (CompanyName).
19. La pasul 3 bifaţi opţiunile Show Statistics şi Save statistics to data set. Apăsaţi butonul Edit din
partea din dreapta sus a ferestrei şi bifaţi doar opţiunile pentru calculul mediei şi a sumei profitului.
Apăsaţi butonul Browse şi redenumiţi raportul creat TOTAL_PROFIT.
20. La Pasul 4 nu modificaţi nici o opţiune.
21. Selectaţi tabela nou creată care include statisticile. Creaţi o interogare numită Profit Limit Query
pentru această tabelă, prin apăsarea butonului Query Bulider.
22. Apăsaţi butonul Prompt Manager pentru crearea unui parametru, Add.
23. În tab-ul General introduceţi în câmpul name: Profit_Limit , iar în câmpul Display text: Display
Suppliers with Total Profits Exceeding $.
24. În tab-ul Prompt Type and Values selectaţi, în ordine, opţiunile: Tipul Numeric, User enter values,
Single Value, Allow only integer values. Default value: 0. Pentru celelalte opţiuni nu specificaţi nimic.
Apăsaţi OK.
25. Setaţi un filtru pentru coloana Profit_Sum, pe baza valorii parametrului Profit_Limit. Selectaţi tab-ul
Filter Data şi trageţi numele coloanei Profit_Sum din partea stângă în suprafaţa filtrului.
26. În fereastra de dialog New Filter, selectaţi ca operator Greater than. Bifaţi opţiunea Generate filter
for a prompt value. În câmpul Value selectaţi iconiţa , apoi tab-ul Prompts şi variabila
&Profit_Limit. Selectaţi Next şi Finish.
27. Selectaţi tab-ul Select Data şi adăugaţi la interogare câmpurile: Country, CompanyName,
Profit_Mean şi Profit_Sum.
28. Modificaţi opţiunile interogării astfel încât acestea să returneze un raport. Apăsaţi butonul Options,
Options for This Query, panelul Results, Results format, bifaţi Override the corresponding defalut…
şi selectaţi Report.
29. Selectaţi Run. La apariţia ferestrei care cere introducerea parametrului, introduceţi 5000 şi apoi
selectaţi Run. Numai furnizorii al căror produse au generat un profit mai mare de profit $5000 sunt
incluşi în raport.
30. Suplimentar: Modificaţi interogarea prin care se creează tabela Profit, astfel încât să afişeze toţi
furnizorii, nu numai pe cei din Europa (Code Modify Task). Apoi, în fereastra fluxului de proces
(Process Flow), selectaţi toate obiectele care sunt create pornind de la tabela Profit şi rulaţi secvenţa
din proiect selectată (butonul Run sau tasta F8). Analizaţi rezultatele obţinute.

6. Joncţiuni externe ale tabelelor

Problema 6: Compania ABC doreşte să identifice comenzile plasate pentru produse care nu mai pot fi
comandate la furnizori, deoarece au fost scoase din producţie. Atunci când sunt scoase din
producţie, produsele sunt şterse din tabela products. Pornind de la tabelele products şi
ordersFinal stocate în directorul cu datele de lucru, realizaţi o interogare care să creeze o tabelă
virtuală ce conţine comenzile plasate pentru produse care nu mai pot fi comandate la furnizori.

Paşi de urmat:
1. Pornind de la tabela products creaţi o interogare la care adăugaţi şi tabela ordersFinal.
2. Modificaţi tipul de joncţiune implicit şi selectaţi o joncţiune externă care să afişeze comenzile
plasate pentru produse care nu mai pot fi comandate la furnizori, deoarece au fost scoase din
producţie.
3. Adăugaţi la interogare următoarele coloane: ProductID, ProductName, ProdID, Quantity,
SellPrice şi Revenue.
4. Setaţi opţiunile interogării pentru a avea ca rezultat o tabelă virtuală. Apăsaţi butonul Options,
Options for This Query, panelul Results, Results format, bifaţi Override the corresponding
defalut… şi selectaţi Data view.
5. Redenumiţi interogarea Discontinued Products Query.
6. Aplicaţi un filtru asupra datelor pentru a include numai comenzile ale căror produse au fost
şterse din tabela products. (Coloana Discontinued = 1)
7. Salvaţi proiectul.

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