2014-02-24 60 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 
)