2014-02-24 247 views
0

我正在使用MS sql作爲數據庫。我想寫一個嵌套的查詢。我的查詢是:嵌套插入SQL查詢

INSERT INTO [Node-churn](total_amount_in) values= 
     (SELECT sum(cast(amount as float)) 
     FROM [CDR-IN] 
     WHERE [Node-churn].subscriber=[CDR-IN].callee) 
WHERE degree <6 

我得到錯誤,運行此查詢。什麼纔是對這個問題的正確查詢?

PS:Node-churn=(subscribers,degree)CDR-IN=(caller,callee,amount)

回答

1

這有點什麼select說法是:

insert into [Node-churn](total_amount_in) 
    select sum(cast(amount as float)) 
    from [CDR-IN] 
    where [Node-churn].subscriber = [CDR-IN].callee and degree < 6; 

但我認爲你需要一個update

update [Node-churn] 
    set total_amount_in = (select sum(cast(amount as float)) 
          from [CRD-IN] 
          where [Node-churn].subscriber = [CDR-IN].callee 
         ) 
    where degree < 6; 
+0

我的錯,我的意思是更新。 –

0

我不是確定你是否可以在插入查詢中使用WHERE。也許這是一個錯字,並且正確的語法是

INSERT INTO [Node-churn](total_amount_in) values= 
    (SELECT sum(cast(amount as float)) 
    FROM [CDR-IN] 
    WHERE [Node-churn].subscriber=[CDR-IN].callee and degree <6 
)