2016-06-27 3 views
1

私は、テーブルに挿入のために、このクエリに任意のデータを書き込み、書き込みクエリで初心者だ:
SQL Serverのテーブルに挿入するときにエラーが発生するのはなぜですか?

insert into ScoreTable (UserID,Score,PhoneNumber,date_) 
select id,sum(Duration)/60 ,phoneNumber,Date_ from CDR p 
where p.phoneNumber=phoneNumber 


が、私はそのクエリを実行すると、私はこのエラーを取得:

Msg 8120, Level 16, State 1, Line 27 
Column 'CDR.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 


どうすれば問題を解決できますか?

答えて

1

問題はselect文にあります。それを独立して実行すると、同じ問題が発生します。集計しているので(SUM)、group by句が必要です。これを行こう。

SELECT p.id 
    ,sum(p.Duration)/60 
    ,p.phoneNumber 
    ,p.Date_ 
FROM CDR p 
WHERE p.phoneNumber = phoneNumber 
GROUP BY p.id, p.phoneNumber, p.Date 

曖昧さを避けるために、クエリでテーブルエイリアスを使用することも忘れないでください。

+0

助けてくれてありがとう。 8分後に –

+0

あなたの解決を受け入れる –

+0

それはあなたに助けて嬉しい:) –

関連する問題