Znalazłem (i uruchomiłem nawet) fajną ciekawostkę ad SQLka:
(Działa tylko w SQL Server, nie działa w Accessie, Excelu, itp.)
Ale AFIN może to uruchamiać - uruchomiłem to właśnie w AFINIE.
Funkcja UNPIVOT (stąd przykład):
http://technet.microsoft.com/en-us/library/ms177410.aspx
ZASTOSOWANIE:
Konsolidacja budżetów
Tłumaczenie na polski:
Mamy duuużo budżetów, oczywiście w arkuszach Excela. Stawiamy
komputer z SQL Serverem Expressem (żeby było taniej, żeby baza
była 'porządna', tzn. żeby informatyk nie marudził, że jakiś
Access, albo Excel).
I... (jedno kliknięcie w AFIN.NET.IS)... pyk... i mamy dane do
dowolnych budżetowych tabel przestawnych
Przygotowanie (przykładowych) danych
DROP TABLE pvt
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int, Emp3 int, Emp4
int, Emp5 int)
INSERT INTO pvt VALUES (1,4,3,5,4,4);
INSERT INTO pvt VALUES (2,4,1,5,5,5);
INSERT INTO pvt VALUES (3,4,3,5,4,4);
INSERT INTO pvt VALUES (4,4,2,5,5,4);
INSERT INTO pvt VALUES (5,5,1,5,5,5);
Normalizacja:
SELECT VendorID, Employee, Orders FROM (SELECT VendorID, Emp1, Emp2,
Emp3, Emp4, Emp5 FROM pvt) p UNPIVOT (Orders FOR Employee IN (Emp1,
Emp2, Emp3, Emp4, Emp5)) AS unpvt
Widok danych:
VendorID Emp1 Emp2 Emp3 Emp4 Emp5
1 4 3 5 4 4
2 4 1 5 5 5
3 4 3 5 4 4
4 4 2 5 5 4
5 5 1 5 5 5
Widok efektu końcowego (to działa!):
VendorID Employee Orders
1 Emp1 4
1 Emp2 3
1 Emp3 5
1 Emp4 4
1 Emp5 4
2 Emp1 4
2 Emp2 1
2 Emp3 5
2 Emp4 5
2 Emp5 5
3 Emp1 4
3 Emp2 3
3 Emp3 5
3 Emp4 4
3 Emp5 4
4 Emp1 4
4 Emp2 2
4 Emp3 5
4 Emp4 5
4 Emp5 4
5 Emp1 5
5 Emp2 1
5 Emp3 5
5 Emp4 5
5 Emp5 5
Pytania?
wtorek, 12 stycznia 2010
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz