Ето сценария: Имам таблица, която записва user_id, module_id и датата/часа, когато модулът е бил прегледан.
eg.
Table: Log
------------------------------
User_ID Module_ID Date
------------------------------
1 red 2001-01-01
1 green 2001-01-02
1 blue 2001-01-03
2 green 2001-01-04
2 blue 2001-01-05
1 red 2001-01-06
1 blue 2001-01-07
3 blue 2001-01-08
3 green 2001-01-09
3 red 2001-01-10
3 green 2001-01-11
4 white 2001-01-12
Трябва да получа набор от резултати, който има user_id като 1-ва колона и след това колона за всеки модул. След това данните за реда са user_id и броят пъти, когато потребителят е прегледал всеки модул.
eg.
---------------------------------
User_ID red green blue white
---------------------------------
1 2 1 2 0
2 0 1 1 0
3 1 2 1 0
4 0 0 0 1
Първоначално мислех, че мога да направя това с PIVOT, но без зарове; базата данни е преобразувана SQL Server 2000 DB, която работи в SQL Server 2005. Не мога да променя нивото на съвместимост, така че pivot не работи.
Другата уловка е, че модулите ще варират и не е възможно да пренаписвате заявката всеки път, когато се добавя или премахва модул. Това означава, че не мога да кодирам твърдо модулите, защото не знам предварително кои ще бъдат инсталирани и кои не.
Как мога да постигна това?