我正在尝试创建一个动态透视图,该透视图在单个视图中连接多个类型为1列的语句,每种类型分别是整数,浮点数,字符串...和位。
我使用T-SQL做到了这一点,并且我在不破坏数据的情况下无法汇总布尔值。
在唯一ID上有一个联接,因此每次我只有1条语句,因此这不是真正的聚合,因此我使用min(integer),min(string)等…但是min或max ,或sum或其他任何内容在这里都行不通。正如我所说的,count()可以工作(我的意思是不会崩溃)但是会损坏。
我尝试将其强制转换为整数,但SQL Server似乎不喜欢PIVOT内部的内容。对于其他语法,我也不太了解,例如sign()
。
以下代码中
我尽我所能,@colsBool
和@crochBool
是动态创建的列列表,我100%确信问题出在聚合函数上(这里是COUNT
)
select
elem_id, ' + @colsBool+'
from
(select
elem_id, cri_nom, data_data_bool
from
VUE_ELEM_DATA_PILE
where
varcri_libelle = ''bool'') dataSrc5
pivot
(COUNT(data_data_bool) for cri_nom IN ('+@crochBool+')
总结:
VUE_ELEM_DATA_PILE看起来像
elem_id cri_nom data_data_bool
------------------------------
1 foo 0
1 bar 1
预期结果:
elem_id foo bar
---------------
1 0 1
实际结果(有COUNT个)
elem_id foo bar
---------------
1 1 1
({foo
和bar
在@colsBool
和@crochBool
列表中)