标题:这样的问题如何解决?
只看楼主
wangsdong
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-3-17
结帖率:100%
 问题点数:0 回复次数:2 
这样的问题如何解决?
表名:product
字段名:pid pname(产品名称),content(产品介绍) userid(用户ID) updatetime(更新时间)
现在要查询产品名称包含“aaa”的产品,并且按更新时间排序,并且一个用户只显示一个产品

这样的sql语句怎么写?
或者有没有其他方法解决?

我自己写的sql语句代码:
select * from product where pname like '%aaa%' group by userid order by updatetime
在sql server中运行,提示:
order by 子句中的列“updatetime”无效,因为该列没有包含在聚合函数或者group by 子句中。
搜索更多相关主题的帖子: content 更新时间 where 用户 
2011-04-08 17:05
panyanpan
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:82
专家分:647
注 册:2011-4-6
得分:0 
select * from product where userid in
(
--取出产品名称包含“aaa”的产品  并且----
    select userid from product where pname like '%aaa%' and
   (pid in
      (--如果一个用户有多个产品的话只取 pid为 min(pid)  即pid为最小值的 产品
       select min(pid) from product group by userid having count(pid)>1
      )
    or pid in
      (--如果一个用户只有一个产品  则直接取
       select pid from product group by userid having count(pid)=1
      )
   )
)
order by updatetime
2011-04-08 21:51
wangsdong
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2009-3-17
得分:0 
谢谢,我试试
2011-04-11 08:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-335987-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.202338 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved