首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

【新手!】为何小弟我没用group by语句,它报group by的错了

2012-07-30 
【新手求助!】为何我没用group by语句,它报group by的错了?我要输出一个“拨号流水列表”里面的“总通话时长”,

【新手求助!】为何我没用group by语句,它报group by的错了?
我要输出一个“拨号流水列表”里面的“总通话时长”,输出的条件是“拨打了外地号码的”(外地号码第一个数字为0)
work是我的表名

我的代码:

select 对方号码,sum(datediff(second,通话开始时间,通话结束时间)) as 总通话时长 from work
where 对方号码 like '0%'

报错:

消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'work.对方号码' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。



我没用group by,他报错什么意思呢?
请高手帮忙下哦,我SQL刚入门,希望能讲解清楚点,告诉我如何改正~!谢谢了

[解决办法]

SQL code
SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、使用order by对结果集进行排序。 另外:一个查询语句各个部分的执行顺序: --8)  SELECT (9) DISTINCT (11) <TOP_specification> <select_list> --(1)  FROM <left_table> --(3)    <join_type> JOIN <right_table> --(2)      ON <join_condition> --(4)  WHERE <where_condition> --(5)  GROUP BY <group_by_list> --(6)  WITH {CUBE | ROLLUP} --(7)  HAVING <having_condition> --(10) ORDER BY <order_by_list> 

热点排行