两个表之间存在差异的SQL嵌套大小写
问题描述:
我已经将两个Excel表作为Microsoft SQL Server Management Server 2007中的表导入,它们都是相同的,但它们来自两个不同的日期。两个表之间存在差异的SQL嵌套大小写
我希望做两件事情,我挣扎的事情:
- 计算为2个表,我可以用
cast
做值之间的差异月和 -
内部联接,但我不是成功地使用这些值能够与巢式病例总结这些值,像这样:
SELECT SUM( CASE WHEN ID <>'MISSING' THEN CASE WHEN SUM(VALUE)>=0 THEN SUM(VALUE) ELSE 0 END END)
我尝试了很多不同的方法,但我得到的主要错误之一是:
无法对包含聚合或子查询的表达式执行聚合函数。
的数据将像现在这样:
dbo.Table1
date(dd/mm/yy) | name | id | value
---------------+------+---------+-------
1/1/14 | A | MISSING | 56
1/1/14 | A | MISSING | -1
1/1/14 | B | YES | 56
1/1/14 | B | YES | -1
dbo.Table2
date(dd/mm/yy) | name | id | value
---------------+------+---------+-------
1/2/14 | A | MISSING | 24
1/2/14 | A | MISSING | -11
1/2/14 | B | YES | 24
1/2/14 | B | YES | -11
答
不要使用SUM
内的另一个SUM
,只是只保留外面SUM
。此外,您的外部CASE
没有ELSE
部分,但您可能也希望在该方案中有0,那么为什么不使用单个CASE
条件?
SELECT SUM(CASE WHEN ID <> 'MISSING' AND VALUE >= 0 THEN VALUE ELSE 0 END)
您能否提供完整的SQL语句?应该有一个'from'子句,可能是一个'join',也可能是一个'group by' ...... – trincot