sql group by分组排序问题

my_lvoe 2009-05-19 03:11:01
select checkid,pzhm,czdw from regist where checkid >'20090508000001'and checkid<'20090519240000' group by czdw having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'
服务器: 消息 8120,级别 16,状态 1,行 1
列 'regist.checkid' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

为什么加了一个checkid,pzhm就报错,我想在制定的checkid范围内进行分组显示 ...
...全文
462 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinjazz 2009-05-19
  • 打赏
  • 举报
回复
要显示在一起根据单位order by 一下就行了,干什么在这里你非要group by 你还是找基础的入门书籍来学学再做程序吧
lihan6415151528 2009-05-19
  • 打赏
  • 举报
回复

select checkid,pzhm,czdw
from regist
where checkid >'20090508000001'and checkid <'20090519240000'
group by checkid,pzhm,czdw
having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'
jinjazz 2009-05-19
  • 打赏
  • 举报
回复
你到底要的结果是什么,你这个字段也要,那个字段也要,那就是select * from
group 是配合聚合函数用的,就你的例子根本不需要group
my_lvoe 2009-05-19
  • 打赏
  • 举报
回复
不好意思,大家能不能给我写哈我举的例子那段SQL语句。。
my_lvoe 2009-05-19
  • 打赏
  • 举报
回复
如果group by left(czdw,3)那怎么select 车牌,时间呢??
jinjazz 2009-05-19
  • 打赏
  • 举报
回复
group by left(czdw,3)
my_lvoe 2009-05-19
  • 打赏
  • 举报
回复

比如我想实现的是公交集团按公司显示,比如公交一公司18路,20路,30路,二公司58,69,63路,三公司96,98,78路按组在指定的时间内显示。而且是同时显示一公司,二公司,三公司,格式如下:
单位 车牌 检测时间
一公司18路 F-1110 2009-5-15
一公司18路, F-1111 2009-5-15
一公司20路, F-1211 2009-5-16
一公司 30路 F-12345 2009-5-16
二公司58路, F-56985 2009-5-16
二公司69路, ……
二公司63路 ……
三公司96, ……
三公司 98, ……
三公司78路 ……
这个怎么实现。。。但我也要显示他们的车牌,单位,出厂时间…如果group by 了车牌,单位,时间,到底按什么分哦
youzhj 2009-05-19
  • 打赏
  • 举报
回复
select checkid,pzhm,czdw 
from regist
where checkid >'20090508000001'and checkid <'20090519240000'
group by checkid,pzhm,czdw
having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'

group by后面的字段应该包括select后面所有的非聚合函数的字段吧
Liyingyue_FFS 2009-05-19
  • 打赏
  • 举报
回复
select checkid,pzhm,czdw 
from regist
where checkid >'20090508000001'and checkid <'20090519240000'
group by checkid,pzhm,czdw
having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'
SQL77 2009-05-19
  • 打赏
  • 举报
回复
高手们都说得很清楚了,
JonasFeng 2009-05-19
  • 打赏
  • 举报
回复
checkid,pzhm不再GROUP BY 子句里。

肯定有问题的呀。

楼上的正解
--小F-- 2009-05-19
  • 打赏
  • 举报
回复
加在group by 后面 ,having 前
jinjazz 2009-05-19
  • 打赏
  • 举报
回复
select checkid,pzhm,czdw from regist where checkid >'20090508000001'and checkid <'20090519240000'
and (czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%')
group by checkid,pzhm,czdw
水族杰纶 2009-05-19
  • 打赏
  • 举报
回复
select checkid,pzhm,czdw from regist where checkid >'20090508000001'and checkid <'20090519240000' 
group by checkid,pzhm,czdw having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'
csdyyr 2009-05-19
  • 打赏
  • 举报
回复
select checkid,pzhm,czdw
from regist
where checkid >'20090508000001'and checkid <'20090519240000'
group by checkid,pzhm,czdw
having czdw like '三公司%' or czdw like '二公司%' or czdw like '一公司%'

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧