SQL嵌套情况,2个表之间存在值差异

时间:2016-07-28 06:44:30

标签: sql-server

我在Microsoft的SQL Server Management Server 2007中导入了两个Excel工作表作为表,它们都是相同的,除了它们来自两个不同的日期。

我希望做两件我努力做的事情:

  1. 计算我可以使用cast
  2. 执行的2个表的值之间的月差异
  3. 内连接,但是我没有成功使用这些值来将这些值与这样的嵌套大小写相加:

    SELECT SUM(
           CASE WHEN ID <>'MISSING' THEN 
               CASE WHEN SUM(VALUE)>=0 THEN 
                    SUM(VALUE) 
               ELSE 
                    0 
               END 
           END) 
    
  4. 我尝试了很多不同的方法,但我得到的一个主要错误是:

      

    无法对包含聚合或子查询的表达式执行聚合函数。

    数据如下:

    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 个答案:

答案 0 :(得分:0)

请勿在{{1​​}}内使用SUM,只保留外SUM。您的外部SUM也没有CASE部分,但您可能也希望在该方案​​中也有0,那么为什么不使用单个ELSE条件?

CASE