CUBE



Nieco już Marcinie mnie męczysz. ROLLUP klauzula jest stosowana w grupowaniu gdy potrzebne są wartości dla grup o stopień wyżej dla wskazanego pola, czyli wartości z uwzględnieniem danego pola przy grupowaniu oraz bez jego uwzględnienia.

Metodą prób i błędów odkryliśmy, iż podając dwa pola w klauzuli ROLLUP i zmieniając kolejność pól istotnie wpływamy na wyświetloną kolekcję wierszy (bardzo mnie się podoba określenie kolekcja :-) ).

Jest jeszcze klauzula CUBE, CUBE przy podaniu jednego pola to ma ten sam efekt co ROLLUP, a istotna różnica jest gdy podamy, obejmiemy klauzulą dwa i więcej pól.

Użyję tego samego przykładu co w postach dotyczących klauzuli ROLLUP. I podobnie posłużę się obrazkami.

Różnica w kolejności pól dla klauzuli CUBE nie ma wpływu na wyświetlaną kolekcję, CUBE powoduje, iż jest generowanie grupowanie z danym polem i bez uwzględnienia danego pola, tak samo dla drugiego pola, z uwzględnieniem drugiego i bez oraz grupowanie dodatkowo z pominięciem obu pól, niejako wszystkie kombinacje.

Dla naszego przykładu będzie użycie klauzuli CUBE przy grupowaniu po roku i regionie wyświetliło:

- każdy wynik i liczbę transakcji w danym roku i danym regionie,

- każdy wynik i liczbę transakcji w danym roku,

- każdy wynik i liczbę transakcji w danym regionie,

- wynik i liczbę transakcji ogółem.

W przypadku CUBE kolejność pól w klauzuli nie ma znaczenia :-)

Kod jest dostępny tutaj, przy czym jeżeli ćwiczyłeś już na transakcjach klauzulę ROLLUP, to nie ma potrzeby tworzenia tabeli na nowo i jej ładowania tylko skopiuj sobie jedynie kwerendy.



Brak komentarzy:

Prześlij komentarz