Jak zamienić krzyżowe SQL (Transform Pivot) na proste Select from w kolumnach np. miesiące?
Access oferuje składnię Transform Pivot. Czy można tę składnię łatwo przerobić na standardowy SQL, który nie oferuje takiej możliwości?
Na przykład, jak przedstawić w klasycznym SQL taką prostą składnię:
Zadaniem tego zapytania jest stworzenie kalendarza, który przedstawiłby - na podstawie kolumny czasu trwania w miesiącach i daty rozpoczęcia umowy - kiedy umowy się kończą:
TRANSFORM Count([Value]) SELECT [NIP], First ([Nazwa_inwestora ]) AS [Klient], First([Miasto Inwestora]) AS [Town] FROM [Data$] WHERE [NIP] IS NOT NULL AND [Del] IS NULL AND year(DateAdd('m',[Dur_mths], [Start_Date]))= " & Range("c3").Value & " GROUP BY [NIP] PIVOT Format(DateAdd('m',[Dur_mths], DateSerial(year([Start_Date]),month([Start_Date]),1)),'mm') TRANSFORM Count([Value]) SELECT [NIP], First ([Nazwa_inwestora ]) AS [Klient], First([Miasto Inwestora]) AS [Town] " FROM [Data$] WHERE [NIP] IS NOT NULL AND [Del] IS NULL AND year(DateAdd('m',[Dur_mths], [Start_Date]))= " & Range("c3").Value & " " "GROUP BY [NIP] PIVOT Format(DateAdd('m',[Dur_mths], DateSerial(year([Start_Date]),month([Start_Date]),1)),'mm') "
W skrócie: Jakby takie zapytanie (tworzące z kolumny zawierającej daty np. podpisania umów, szereg kolumn ze zliczonymi wystąpieniami dat w określonych miesiącach) wyglądało w klasycznym SQL-u?