2012-08-30 78 views
2

我需要在查詢中使用「union」和「into」。這兩個版本的作品確定選擇使用聯合

SELECT x.* INTO 
NewTABLE FROM 
    (SELECT * FROM TABLE1 UNION SELECT * FROM TABLE2) x 

或者

SELECT x.* INTO 
NewTABLE FROM 
    (SELECT val1, val2 FROM TABLE1 UNION SELECT val1, val2 FROM TABLE2) x 

但我需要的是這樣的事情

SELECT x.* INTO 
NewTABLE FROM 
    (SELECT val1, sum(Iif(val2<0,0,val2)) as PositiveVal2 FROM TABLE1 
    UNION SELECT val1, sum(Iif(val2<0,0,val2)) as PositiveVal2 FROM TABLE2) x 

它看起來像之和/或IIF的問題。我應該如何解決這個問題!?

回答

1

您在工會選擇中忘記了GROUP BY。

SELECT x.* INTO 
NewTABLE FROM 
    (SELECT val1, sum(Iif(val2<0,0,val2)) as PositiveVal2 
    FROM TABLE1 GROUP BY Val1 
    UNION 
    SELECT val1, sum(Iif(val2<0,0,val2)) as PositiveVal2 
    FROM TABLE2 GROUP BY Val1) x 

您必須在聚合查詢中聚合或GROUP BY所有選擇字段。