SQL: CrossTab !

CrossTab ! – procedura typu „stored procedure” pozwola szybko utworzyć zapytanie krzyżowe na serwerze Ms SQL i otrzymać wynik w formie czytelnej tabeli z dynamiczną listą kolumn. Za pomocą jednej uniwersalnej procedury z kilkoma parametrami można bardzo szybko utworzyć zapytania działające na zasadzie tabeli Pivot znanej z MsExcel lub CrossTab znanego z MsAccess.

CrossTab ! to praktyczne narzędzie dla programistów, które umożliwia szybkie wykonanie zapytania krzyżowego (typu PIVOT) na bazie MsSQL 2000, 2005, 2008. Wynikiem jest tabela z dynamiczną listą kolumn. Przy pomocy zaledwie kilku parametrów i procedury CrossTab! otrzymasz wyniki, których dotychczasowe przygotowanie i opracowanie zajmowało dużo czasu.


Przykładowe wywołanie:
EXEC dbo.CrossTab 
    — data select
    ’SELECT * FROM oce_mbo.AuditUser WHERE AuditUserID>0 ORDER BY UserName’
    — grouping column
    ,’UserName’
    — agregate column (optional)
    ,’Avg(AuditUserID) AS ID’
    — order by (optional)
    ,NULL
    — PIVOT column name source
    ,’UserName’
    — PIVOT value
    ,’Min([AuditUserID])+Max([AssociateID])’
    — PIVOT fixed columns (optional)
    –,'[Ablink], [FZoom], [Maxi]’

Przykładowy rezultat działania:

UserName ID Ablink Dword EMat FZoom HDry Maxi Supero
Ablink 1 2 NULL NULL NULL NULL NULL NULL
Dword 166 NULL 332 NULL NULL NULL NULL NULL
EMat 134 NULL NULL 268 NULL NULL NULL NULL
FZoom 162 NULL NULL NULL 324 NULL NULL NULL
HDry 2 NULL NULL NULL NULL 4 NULL NULL
Maxi 121 NULL NULL NULL NULL NULL 242 NULL
Supero 3 NULL NULL NULL NULL NULL NULL 6

Dysponując uniwersalną procedurąCrossTab ! błyskawicznie utworzysz i wykonasz dowolne zapytanie krzyżowe, którego źródłem danych może być dowolne inne zapytanie lub procedura. Rezultatem działania procedury będzie tabela prezentująca w czytelnej formie wybrane dane. Ilość generowanych kolumn z danymi można ograniczyć tylko do listy wybranych, stanowiących podzbiór wyniku.

Procedura umożliwia również wykonanie zapytania w formie testowej, zwracając wszystkie nazwy kolumn, które zostaną wygenerowane w przypadku pełnego uruchomienia procedury.


Przykładowe wywołanie:
EXEC dbo.CrossTab 
    ’SELECT * FROM oce_mbo.AuditUser WHERE AuditUserID>0 ORDER BY UserName’
    ,’UserName’
    ,’Avg(AuditUserID) AS ID’
    ,NULL
    ,’UserName’
    ,’Min([AuditUserID])+Max([AssociateID])’
    ,NULL
    ,NULL
    — return column names only (optional)
    ,1

Przykładowy rezultat działania:

ColumnName
Ablink
Dword
EMat
FZoom
HDry
Supero

Dodatkowo można określić sortowanie zwracanych danych, pomijać rekordy z wartością NULL w nazwie kolumny, włączyć tryb debugowania pozwalający na przejrzyste sprawdzenie działania procedury i ułatwiające wyszukiwanie błędów w zapytaniach bazowych.

Z uwagi na elastyczność parametrów wywołania oraz szybkość tworzenia zapytania krzyżowego Cross Tab ! na pewno spełni Twoje oczekiwania.

ProceduraCrossTab ! nie wymaga dodatkowych instalacji na serwerze, uruchamiana jest z bazy docelowej. Do działania nie wymaga Raporting Services. Całość rozwiązania to jedna procedura!

Specyfikacja techniczna: Wymagania: procesor minimum 200MHz, przestrzeń dyskowa 1MB + wielkość skryptowanych elementów, pamięć RAM 64MB
Systemy: Windows: NT, 2000, XP, Vista, 7, Server 2000, Server 2003, Server 2008
Licencja: trzy typy licencji:
baza danych – do instalacji na jednej bazie,
serwer – do instalacji na jednym serwerze bez limitu na bazy danych,
developer – bez limitów na bazę danych i na serwer
Bazy danych: Microsoft SQL Server: 2000, 2005, 2008