首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问SQL语句高手

2013-02-19 
请教SQL语句高手有一个表,有两列,第一列表示日期(Day),第二列表示数据(Data)现要求仅使用SQL语句输出每年

请教SQL语句高手
有一个表,有两列,第一列表示日期(Day),第二列表示数据(Data)
现要求仅使用SQL语句输出每年的最大值和最小值
谢谢!
[解决办法]
每年的什么最大值?数据吗?

select year(day),min(data),max(data) from tb group by year(day)
[解决办法]

;WITH T([Day],[Data]) AS(
SELECT '2012-1-15',15 UNION ALL
SELECT '2009-3-15',14 UNION ALL
SELECT '2010-6-15',20 UNION ALL
SELECT '2011-1-15',30 UNION ALL
SELECT '2010-7-25',11 UNION ALL
SELECT '2011-5-17',20 UNION ALL
SELECT '2013-6-14',57 UNION ALL
SELECT '2012-4-15',19
)

SELECT YEAR([DAY]) AS [Day],MAX([Data]) AS [Data]
FROM T 
GROUP BY YEAR([Day])

[解决办法]

select [day],[data] from tbl a where not exists(select 1 from tbl b where year(a.[day])=year(b.[day]) and a.[day]<b.[day]) or not exists(select 1 from tbl b where year(a.[day])=year(b.[day]) and a.[day]>b.[day]) order by 1 asc

热点排行