【问题标题】:How do I get the sum?我如何得到总和?
【发布时间】:2015-09-14 06:37:25
【问题描述】:

我不知道我应该把一些 () 放在哪里来得到总和。 或者我可以用更好的方式来做吗? :)

SELECT COUNT (CAST(Value as int)) FROM [tblExtraFieldData],[tblTask]
WHERE [tblExtraFieldData].[FieldId] = '10010' 
AND [tblExtraFieldData].[OwnerId]=[tblTask].[Id] 
AND [tblTask].[Status]=0
AND [tblExtraFieldData].[Value]>'1'
AND [tblTask].[ProjectNr]= 'Offert - Bygg'

-

SELECT COUNT (CAST(Value as int)) FROM [tblExtraFieldData],[tblTask]
WHERE [tblExtraFieldData].[FieldId] = '10010' 
AND [tblExtraFieldData].[OwnerId]=[tblTask].[Id] 
AND [tblTask].[Status]=0
AND [tblTask].[ProjectNr]= 'Offert - Bygg'

【问题讨论】:

  • 什么的总和?描述您的问题。
  • 如果可能的话,写下你的样本数据并期待你想要的输出
  • 无论如何,我猜你在某个地方错过了 GROUP BY...
  • @skypjack,取决于是否应该返回所有行的 SUM(1 行结果),或者不同组的 SUM(多行结果)。
  • 基于非标准语法添加sql-server和tsql标签

标签: sql sql-server tsql sum


【解决方案1】:

试试这个方法

select sum(b.a) from(
SELECT COUNT (CAST(Value as int)) as a FROM [tblExtraFieldData],[tblTask]
WHERE [tblExtraFieldData].[FieldId] = '10010' 
AND [tblExtraFieldData].[OwnerId]=[tblTask].[Id] 
AND [tblTask].[Status]=0
AND [tblExtraFieldData].[Value]>'1'
AND [tblTask].[ProjectNr]= 'Offert - Bygg'

union all

SELECT COUNT (CAST(Value as int)) as a FROM [tblExtraFieldData],[tblTask]
WHERE [tblExtraFieldData].[FieldId] = '10010' 
AND [tblExtraFieldData].[OwnerId]=[tblTask].[Id] 
AND [tblTask].[Status]=0
AND [tblTask].[ProjectNr]= 'Offert - Bygg') b

【讨论】:

  • 之前的第一节 - 是 18,另一节是 24,应该是 4。现在变成了 36...
猜你喜欢
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2021-12-21
相关资源
最近更新 更多