Im пытается произвести следующий вывод из SQL 2008 запросов -SQL SELECT на основе присоединяемой таблицы
JobID | Repair & Reshape | Refit Stripped Parts | Polishing
1000 | true | true | false
1001 | true | true | false
1002 | true | true | false
1003 | true | true | false
1004 | true | true | false
Структура таблицы у меня есть -
JobDetails
ID - PK Auto increment
JobID - Int (Joined to Jobs table)
PhaseID - String (joined to JobPhases table)
JobPhases
ID - PK String
Name - VarChar(150)
Таким образом, f ar, I have -
SELECT JobID, [0], [1], [2], [3], [4], [5], [6], [7]
FROM
(
SELECT JobID, PhaseID, [x] = 1 FROM JobDetails
) JobDetails
PIVOT
( SUM(x)
FOR PhaseID IN ([0], [1], [2], [3], [4], [5], [6], [7])
) pvt
Но не знаете, как я буду заменять 0-7 и т.д. именами Фазы задания?
Приветствия
Это работает, однако есть ли способ избежать ручной набивки имен фаз, но сделать это на основе выбора из таблицы JobPhases? Cheers – dynamicuser
Да, в этом случае вы должны делать это динамически, используя динамический SQL, например, см. [** этот пост **] (http://stackoverflow.com/a/16589658/722783). –