Sunteți pe pagina 1din 5

Bilet de Examen subiectul Achizitii

Furnizori Tab Cienti Facturi ETL sau DTS

Depozit

Marfuri

Linii Factura Producatori

Extragere, transformare, incarcare, actualizare Sursa de date


a) Identificarea masurilor si dimensiunilor Masurile apartin tabelei de fapte. O masura este un camp numeric valoric de o maniera continu i aditiv pe ierarhiile tuturor dimensiunilor. Valoarea Facturii (ValFact), Valoare Discount (ValDiscount), Cantitate achiziionat (CantAchiz). Dimensiunile O dimensiune are intotdeauna un identificator iar atributele dimeniuni se numesc parametri. DimFurnizori, DimProducatori, DimTimp, DimMarfuri

DimMarfuri (IDMarfa, DenM, UM, Subcateg, Categ, Subgrupa, Grupa, Calitate) DimFurnizori (IDFurnizor, DenF, LocF, JudF, Regiune, Subclasa fz, Clasa fz, Cod
fiscal)

DimProducatori (IDProd, Nume, Tara) DimTimp (IDTimp, luna, trimestru, An, Sezon)
b) Identificarea ierarhiilor alternative DimTimp I1 (IDTimp, luna, trimestru, An) I2 (IDTimp, luna, sezon) DimFurnizori I1 (IDFurnizor, LocF, JudF, Regiune ) I2 (IDFurnizor, Subclasa fz, Clasa fz)

DimProducatori (IDProd, Nume, Tara) DimMarfuri I1 (IDMarfa, Subcateg, Categ) I2 (IDMarfa, Subgrupa, Grupa)

c) MCD (Modelul conceptual al depozitului)


DimTimp IDTimp luna trimestru An Sezon Achizitii ValFact ValDiscount CantAchiz DimMarfuri IDMarfa DenM UM Subcateg Categ Subgrupa Grupa Calitate

DimProducatori IDProd Nume Tara

DimFurnizori IDFurnizor DenF LocF JudF Regiune Subclasa fz Clasa fz Cod fiscal

Rezult un model de tip stea n care avem o tabel de fapte (Achizitii) i mai multe dimensiuni ( DimTimp, DimFurnizori, DimMarfuri, Dim Producatori). MLD DimTimp (IDTimp, luna, trimestru, An, Sezon) DimMarfuri (IDMarfa, DenM, UM, Subcateg, Categ, Subgrupa, Grupa, Calitate) DimFurnizori (IDFurnizor, DenF, LocF, JudF, Regiune, Subclasa fz, Clasa fz, Cod
fiscal)

DimProducatori (IDProd, Nume, Tara) Achizitii (IDFurnizor, IDTimp, IDMarfa IDProd, CantAchiz, ValFact,
ValDiscount)

5. a)popularea DimMarfuri extragere marfuri (se salveaz exmarf)


Select Marfuri.Cod marfa, Marfuri.Denumire, Marfuri.Categorie, Marfuri.Subcategorie, Marfuri.Grupa, Marfuri.Subgrupa, Marfuri.Calitate, Marfuri.Unit masura From Marfuri IN .sursadedate.mdb;

Transformare marfuri ( se salveaza transfmarf)


Select exmarf. Cod marfa AS IDMarfa, exmarf.Denumire AS DenM, exmarf.Categorie AS Categ, exmarf.Subcategorie AS Subcateg, exmarf.Grupa, exmarf.Subgrupa, exmarf.Calitate, exmarf.Unit masura AS UM From exmarf;

Creare Dimmarfuri (se salveaza crmarf)


Select transfmarf.IDMarfa, transfmarf.DenM, transfmarf.Categ, transfmarf.Subcateg, transfmarf.Grupa, transfmarf.Subgrupa, transfmarf.Calitate, transfmarf.UM INTO DimMarfuri IN depozit.mdb From transmarf;

Actualizare marfuri (se salveaza acmarf)


INSERT INTO DimMarfuri (IDMarfa, DenM, UM, Subcateg, Categ, Subgrupa, Grupa, Calitate) IN depozit.mdb Select transfmarf.IDMarfa, transfmarf.DenM, transfmarf.Categ, transfmarf.Subcateg, transfmarf.Grupa, transfmarf.Subgrupa, transfmarf.Calitate, transfmarf.UM From transfmarf;

c) pentru tabela de fapte Achizitii extragere Achizitii (se salveaza exachizitii)


Select Facturi.Cod fz, Facturi.Data fct, Facturi.Discount, Linii Factura.Cantitate, Marfuri.Cod marfa, Marfuri.Pret unitar, Marfuri.Cod Producator From Facturi INNER JOIN (Linii Factura INNER JOIN Marfuri ON Linii Factura.Cod marfa= Marfuri.Cod marfa) ON Facturi.Nr fct = Linii Factura.Nr fct IN .sursadedate.mb;

Transformare achizitii (se salveaza transfachizitii)

Select exachizitii.Cod fz AS IDFurnizor, exachizitii.Cod marfa AS IDMarfa, exachizitii.Cod producator AS IDProd, exachizitii.Data fct AS IDTimp, Sum(exachizitii.Cantitate *exachizitii.Pret unitar(1-exachizitii.Discount)) AS ValFact, Sum(exachizitii.Cantitate*exachizitii.Pret unitar*exachizitii.Discount) AS ValDiscount, Sum(exachizitii.Cantitate) AS CantAchiz From exachizitii Group By exachzitii.Cod marfa, exachizitii. Data fct, exachizitii.Cod marfa;

Creaza achizitii (se salveaza crachizitii)


Select transfachizitii.IDMarfa, transfachizitii.IDTimp, transfachizitii.IDFurnizor, transfachizitii.IDProd, transfachizitii.ValFact, transfachizitii.ValDiscount, transfachizitii.CantAchiz INTO Achizitii IN ..depozit.mdb From transfachizitii;

Actualizare achizitii (se salveaza acachizitii)


INSERT INTO Achizitii (IDMarfa, IDTimp, IDFurnizor, IDProd, ValFact, ValDiscount, CantAchiz) IN ..depozit.mdb Select transfachizitii.IDMarfa, transfachizitii.IDTimp, transfachizitii.IDFurnizor, transfachizitii.IDProd, transfachizitii.ValFact, transfachizitii.ValDiscount, transfachizitii.CantAchiz From transfachizitii;

6 a)
Transform Sum(Achizitii.CantAchiz)AS TotalAchizitii Select DimTimp.luna, DimFurnizori.DenF, DimMarfuri.Categorie From DimTimp, DimMarfuri, DimFurnizori, Achizitii Where DimTimp.IDTimp = Achizitii.IDTimp and DimFurnizori.IDFurnizor = Achizitii.IDFurnizor and DimMarfuri.IDMarfa = Achizitii.IDMarfa and DimTimp.An = 2005 Group BY DimTimp.luna, DimFurnizori.DenF, DimMarfuri.Categorie Pivot DimMarfuri.DenM;

b) Transform Sum(Achizitii.CantAchiz)AS TotalAchiz


Select DimProducatori.Nume, DimProducatori.Tara From DimProucatori INNER JOIN (Achizitii INNER JOIN DimMarfuri ON Achizitii.IDMarfa = DimMarfuri.IDMarfa) ON DimProducatori.CodProd = Achizitii.CodProd Group BY DimProducatori.Nume, DimProducatori.Tara Pivot DimMarfuri.DenM;

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