两个表之间存在差异的SQL嵌套大小写

问题描述:

我已经将两个Excel表作为Microsoft SQL Server Management Server 2007中的表导入,它们都是相同的,但它们来自两个不同的日期。两个表之间存在差异的SQL嵌套大小写

我希望做两件事情,我挣扎的事情:

  1. 计算为2个表,我可以用cast做值之间的差异月和
  2. 内部联接,但我不是成功地使用这些值能够与巢式病例总结这些值,像这样:

    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 
+1

您能否提供完整的SQL语句?应该有一个'from'子句,可能是一个'join',也可能是一个'group by' ...... – trincot

不要使用SUM内的另一个SUM,只是只保留外面SUM。此外,您的外部CASE没有ELSE部分,但您可能也希望在该方案​​中有0,那么为什么不使用单个CASE条件?

SELECT SUM(CASE WHEN ID <> 'MISSING' AND VALUE >= 0 THEN VALUE ELSE 0 END)