SQL Server Pivot中带有布尔值的聚合函数

时间:2019-04-30 09:49:04

标签: sql sql-server sql-server-2008

我正在尝试创建一个动态透视图,该透视图在单个视图中连接多个类型为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

({foobar@colsBool@crochBool列表中)

0 个答案:

没有答案