| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:这样的问题如何解决?
只看楼主 加入收藏
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
快速回复:这样的问题如何解决?
数据加载中...
 
   



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

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