PIVOT
(
count(DueCount) FOR dueLibraries.s_folder IN ([Assembly Report-TUL],[Balance-TUL],[BOM-TUL],[Hydrostatic-TUL],[Inspection-TUL],[IOM Manual-TUL],[MTR-TUL],[NDT-TUL],[Performance-TUL],[Inputs - TUL],[Transmitted])
) as MonthlyTally
我宁愿这么做:
PIVOT
(
count(DueCount) FOR dueLibraries.s_folder IN (select * from dueLibraries)
) as MonthlyTally
有办法吗?
答案 0 :(得分:4)
你的问题似乎是双重的。
首先,第一个代码段的IN
列表中的标识符是分隔标识符。它们必须用方括号分隔,因为它们do not obey the rules用于Transact-SQL中的常规标识符(特别是因为它们包含空格和连字符)。
您问题的第二部分是关于用掩码替换明确的列列表,以使列表动态化。现在,没有可用的语法,您唯一的选择似乎是带有PIVOT子句的动态查询。 Here's one example如何实施。