sql查询最高/最低记录发生时间

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:43:55
============ 环境 ============
一个数据库表,表名data,字段有4个:id,detail,quantity,date
其中id为自动编号,
detail为文本类型,
quantity为数字类型,
date为时间/日期,默认为"now()"(生成格式:2008-2-25 17:18:37),
每天可能会添加N条记录,也可能不会添加记录.

============ 问题 ============
不再添加字段,直接用date字段,通过SQl语句,能查询出哪个月(哪一日)添加的记录累计"detail"值最大(最小)吗.如果行,SQL该怎么写?

============ 备注 ============
本问题是上一个问题没有解决的具体补充,上一问题:http://zhidao.baidu.com/question/46903302.html
首先谢谢各位的帮忙,在下感激不尽.
wyehua 的回答能得出单个记录的"quantity"最大;
其它兄弟的可能是我没看懂,都报错.
说明一下,我提问时写的"记录累计'detail'值"写错了,应该是"记录累计'quantity'值",不好意思啊,还有,本人用的是ACCESS数据库.

另外,如果有兴趣,请帮我看一下另一个提问:
http://zhidao.baidu.com/question/47768669.html
谢谢!

可以用 max、min 函数
select max(detail) ,date from data
select min(detail) ,date from data

select top 1 * from data where detail = (select max(detail) from data)

--这样可以得出每日的最大值和最小值
SELECT MAXDETAIL=MAX(DETAIL),MINDETAIL=MIN(DETAIL),DATE=CONVERT(VARCHAR(10),DATE,120) FROM DATA GROUP BY CONVERT(VARCHAR(10),DATE,120)

好像楼上的都没有看清那个detail是text类型哦~求max求成什么东西了啊...

如果你指记录条数最多的话参见入下
select top 1 date,count(*) as 记录数 from data group by CONVERT(varchar(10),date,120)
order by count(*) desc

以上是求得最大的1条记录,当然你也可以改变那个1求得从大到小前N名
,要求最小的话去掉最后那个'desc'就行了

Access 不熟悉 用oracle来写,供参考:
select
to_char(A.date,'yyyymm') month,max(sumD) msumd
From
(
select date,sum(detail) sumD from data group by date
--按日分组取得每日合计值
) A
group by to_char(A.date,'yyyymm') --按照月分组取得当月最大的日合计值

查哪个月最大
select top 1 datediff('m',now(),[date]) as maxmonth, sum(quantity) as q