sql2005查询语句问题

yugebu 2012-04-07 12:12:24
查询所有的类别信息 当num为0时查询所有的,num为1时则根据id查询一条
if (num == 0) {
sql = "SELECT l.id,l.name,l.shuoming,count(p.lid),l.contenttime FROM photo AS p "
+ " RIGHT JOIN leibie AS l ON p.lid=l.id GROUP BY l.id ";
} else if (num == 1) {
sql = "SELECT l.id,l.name,l.shuoming,count(p.lid),l.contenttime FROM photo AS p "
+ " RIGHT JOIN leibie AS l ON p.lid=l.id where l.id="
+ id
+ " GROUP BY l.id ";
提示错误:com.microsoft.sqlserver.jdbc.SQLServerException: 选择列表中的列 'leibie.name' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。向各位高手请教啊
...全文
132 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Felixzhaowenzhong 2012-04-07
  • 打赏
  • 举报
回复
if (num == 0) {
sql = "SELECT l.id,l.name,l.shuoming,count(p.lid),l.contenttime FROM photo AS p "
+ " RIGHT JOIN leibie AS l ON p.lid=l.id GROUP BY l.id,l.name,l.shuoming ,l.contenttime";
} else if (num == 1) {
sql = "SELECT l.id,l.name,l.shuoming,count(p.lid),l.contenttime FROM photo AS p "
+ " RIGHT JOIN leibie AS l ON p.lid=l.id where l.id="
+ id
+ " GROUP BY l.id,l.name,l.shuoming,l.contenttime ";


---GROUP BY l.id,l.name,l.shuoming,l.contenttime

  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

引用 3 楼 的回复:

引用 2 楼 的回复:

都加了 还是没用啊。。。


你把出现在聚合函数之外的所有字段名字都加到对应的group by后面

群众标示压力很大,哈哈
梦猪加油

大哥,技术强点也教我下呗,小弟无力啊。。。
[/Quote]

你把语句改写一下,先做完连接查询,再来统计
yugebu 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 3 楼 的回复:

引用 2 楼 的回复:

都加了 还是没用啊。。。


你把出现在聚合函数之外的所有字段名字都加到对应的group by后面

群众标示压力很大,哈哈
梦猪加油
[/Quote]
大哥,技术强点也教我下呗,小弟无力啊。。。
小天 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

都加了 还是没用啊。。。


你把出现在聚合函数之外的所有字段名字都加到对应的group by后面
[/Quote]
群众标示压力很大,哈哈
梦猪加油
yugebu 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

都加了 还是没用啊。。。


你把出现在聚合函数之外的所有字段名字都加到对应的group by后面
[/Quote]
都加了,它就提示: 在用于 GROUP BY 子句分组依据列表的表达式中,不能使用聚合或子查询
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

都加了 还是没用啊。。。
[/Quote]

你把出现在聚合函数之外的所有字段名字都加到对应的group by后面
yugebu 2012-04-07
  • 打赏
  • 举报
回复
都加了 还是没用啊。。。
  • 打赏
  • 举报
回复
把leibie.name加到group by后面
yugebu 2012-04-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

SQL code
if (num == 0) {
sql = "SELECT l.id,l.name,l.shuoming,count(p.lid),l.contenttime FROM photo AS p "
+ " RIGHT JOIN leibie AS l ON p.lid=l.id GROUP BY l.id,l.name,l.shuoming ,l.contenttime";
}……
[/Quote]
高手尚有人在啊,谢谢你啊,太感谢你了

34,837

社区成员

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

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