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

sql 2000 group by 方法的使用,该如何处理

2012-03-25 
sql 2000 group by 方法的使用selectCONVERT(VARCHAR(10),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*

sql 2000 group by 方法的使用
select 

 CONVERT(VARCHAR(10),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),120) AS 日期,

CONVERT(VARCHAR(5),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),108) +'~' + CONVERT(VARCHAR(5),DATEADD(hour,1,DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0)),108) AS 时间,

 AVG([online]) AS 平均值 

from red_20111118 

  GROUP BY DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0)


上面这样一条SQL语句,在sql 2005中没问题。但是在sql 2000中就会报一下错误,

消息 8120,级别 16,状态 1,第 2 行
列 'red_20111118.regtime' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
消息 8120,级别 16,状态 1,第 2 行
列 'red_20111118.regtime' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
消息 8120,级别 16,状态 1,第 2 行
列 'red_20111118.regtime' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

哪位大侠帮忙看一下。
急。急。急。。

[解决办法]
GROUP BY CONVERT(VARCHAR(10),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),120) ,
CONVERT(VARCHAR(5),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),108) +'~' + CONVERT(VARCHAR(5),DATEADD(hour,1,DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0)),108)
[解决办法]
貌似08也没问题,呵呵
[解决办法]

SQL code
select  CONVERT(VARCHAR(10),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),120) AS 日期,CONVERT(VARCHAR(5),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),108) +'~' + CONVERT(VARCHAR(5),DATEADD(hour,1,DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0)),108) AS 时间, AVG([online]) AS 平均值  from red_20111118    GROUP BY  CONVERT(VARCHAR(10),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),120) AS 日期,CONVERT(VARCHAR(5),DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0),108) +'~' + CONVERT(VARCHAR(5),DATEADD(hour,1,DATEADD(minute,DATEDIFF(minute,0,regtime)/60*60,0)),108) AS 时间, 

热点排行