2016-07-28 85 views
-1

我已經將兩個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

回答

0

不要使用SUM內的另一個SUM,只是只保留外面SUM。此外,您的外部CASE沒有ELSE部分,但您可能也希望在該方案​​中有0,那麼爲什麼不使用單個CASE條件?

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