为什么我想在sql server中插入表时出错?

时间:2016-06-27 10:02:46

标签: 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 个答案:

答案 0 :(得分: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

还要记住在查询中使用表别名以避免歧义。