当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求教一个MYSQL查询
帖子发表于 : 2008-10-01 9:14 

注册: 2006-09-29 5:11
帖子: 1005
送出感谢: 10
接收感谢: 4
table : prices (priceid, item, date, value, user)
要求:找到某个user的所有价格,按item归类,并且找到最大的date的记录行。也就是说,每个用户有很多个价格记录,相同或不同的日期,相同或不同的商品,要找到某个用户的每个商品的最近时间的一条价格记录。

我用select *, max(date) from prices where user=x group by item,结果是max(date)是group的最大值,但价格记录不是max(date)那条记录。也就是说返回的记录里正确的按商品分组了,而且得到了该商品的最后价格日期,但是对应的价格记录却不是组后价格日期对应的那条记录,而是该商品的组里面的第一条记录。

举例:
user "大宝"买了“书包”4次:1日花了5.0元,5日花了5.2元,10日花了5.1元,15日花了5.5元。
还买了“香烟”N次。。。。

我要找到大宝最后一次买书包和香烟的价格。上面我的sql查询返回的对应“书包” 的是1日的详细记录和“15日”作为该组的最后日期


求正确的查询语句。


_________________
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS

Firefox/Thunderbird 插件接活中。。。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求教一个MYSQL查询
帖子发表于 : 2008-10-01 22:24 

注册: 2008-02-12 14:20
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
在mssql下测试过
select a.* from prices a ,
(select [user],item,max(date) as date from prices group by [user],item) b
where a.[user]=b.[user] and a.item = b.item and a.date=b.date


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求教一个MYSQL查询
帖子发表于 : 2008-10-02 7:42 

注册: 2006-09-29 5:11
帖子: 1005
送出感谢: 10
接收感谢: 4
楼上的好像不对啊。
我现在暂时用的方法是用一个临时查询表格先把原表按“时间”倒序排序,然后再用我那个查询语句,出来的就是我要的结果了。


_________________
Dell D620 -> Asus U44SG
Dapper->Edgy->Feisty->Gutsy->Hardy->Karmic->Lucid -> Oneric -> Precise->Trusty
Python+JS

Firefox/Thunderbird 插件接活中。。。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求教一个MYSQL查询
帖子发表于 : 2008-10-02 8:31 
头像

注册: 2005-06-11 14:03
帖子: 6226
地址: 不明真相的群众
送出感谢: 0 次
接收感谢: 0 次
按照我对ms sql的理解, 2楼的是正确的. 平时很少用mysql.


_________________
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译