Sql server MSSQL:使用多列将所有结果带到第一行

Sql server MSSQL:使用多列将所有结果带到第一行,sql-server,Sql Server,我是SQL的新手。我对得到结果有意见。我必须将所有结果发送到第一行。我怎样才能修好它 以下是问题的图像: 这会给你你想要的 已更新 SELECT SUM(case when anaForm.txtQ1='Kesinlikle Katılıyorum' then 1 ELSE 0 end) [YES100] ,SUM(case when anaForm.txtQ1='Katılıyorum' then 1 ELSE 0 end ) as [YES75] ,SUM(case when ana

我是SQL的新手。我对得到结果有意见。我必须将所有结果发送到第一行。我怎样才能修好它

以下是问题的图像:


这会给你你想要的

已更新

SELECT
 SUM(case when anaForm.txtQ1='Kesinlikle Katılıyorum' then 1 
 ELSE 0 end) [YES100]
,SUM(case when anaForm.txtQ1='Katılıyorum' then 1 ELSE 0 end ) as [YES75]
,SUM(case when anaForm.txtQ1='Benim için bir şey değişmedi' then 1 ELSE 0 end) as [NEITHER0]
,SUM(case when anaForm.txtQ1='Katılmıyorum' then 1 ELSE 0 end) as [NO100]
from E_prj_pazarlama_fuar_Anket_Form anaForm 
inner join DOCUMENTS D ON anaForm.ID = D.ID 
inner join FLOWDOCUMENTS FD ON anaForm.ID = FD.FILEPROFILEID
inner join LIVEFLOWS L ON FD.PROCESSID = L.ID 
inner join FLOWSTATUSES FS on FS.VERSION=L.FLOWVERSION and fs.STATUS=l.STATUS and fs.PROCESS='prj_pazarlama_fuar_Anket'
WHERE L.DELETED=0 AND D.DELETED=0 
AND L.FINISHED = 1 AND L.FLOWSTEP>1 
-- Group by  anaForm.txtQ1 *** This is giving you 3 rows. Comment this out and try

SUM(CASE)
是您需要的。可能需要在您的
案例中添加
ELSE 0
。首先,谢谢。但结果是:无法对包含聚合或子查询的表达式执行聚合函数。啊。。。删除
Count(anaForm.txtQ1)
并放入
1
。@WEI_DBA,case语句应如下所示:
SUM(当anaForm.txtQ1='Katılıyorum'然后1或0结束时的case)作为[YES75]
同意。我会更新的。应该在@AhmetKeskin第一次评论之后编辑它。我的错,非常感谢。它有效。:)
SELECT
 SUM(case when anaForm.txtQ1='Kesinlikle Katılıyorum' then 1 
 ELSE 0 end) [YES100]
,SUM(case when anaForm.txtQ1='Katılıyorum' then 1 ELSE 0 end ) as [YES75]
,SUM(case when anaForm.txtQ1='Benim için bir şey değişmedi' then 1 ELSE 0 end) as [NEITHER0]
,SUM(case when anaForm.txtQ1='Katılmıyorum' then 1 ELSE 0 end) as [NO100]
from E_prj_pazarlama_fuar_Anket_Form anaForm 
inner join DOCUMENTS D ON anaForm.ID = D.ID 
inner join FLOWDOCUMENTS FD ON anaForm.ID = FD.FILEPROFILEID
inner join LIVEFLOWS L ON FD.PROCESSID = L.ID 
inner join FLOWSTATUSES FS on FS.VERSION=L.FLOWVERSION and fs.STATUS=l.STATUS and fs.PROCESS='prj_pazarlama_fuar_Anket'
WHERE L.DELETED=0 AND D.DELETED=0 
AND L.FINISHED = 1 AND L.FLOWSTEP>1 
-- Group by  anaForm.txtQ1 *** This is giving you 3 rows. Comment this out and try