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

问一个SQL语句的写法解决办法

2012-01-15 
问一个SQL语句的写法有一个表TTTIDMoneyDT1000110002007-01100029992007-01...........1100352007-0110001

问一个SQL语句的写法
有一个表TTT
ID                   Money                   DT      
10001             1000                   2007-01
10002             999                     2007-01
...                 ...                     .....
11003             5                         2007-01
10001             1000                   2007-02
...                 ...                     ...
11000             2                         2007-02

ID不重复   Money是钱数     DT是时间年和月
Money是排好续的
怎么显示按照时间只显示前5个
ID               Money                     DT
10001         1000                       2007-01
10002         999                         2007-01
10003         998                         2007-01
10004         997                         2007-01
10005         996                         2007-01
10001         1000                       2007-02
10002         999                         2007-02
10003         998                         2007-02
10004         997                         2007-02
10005         996                         2007-02
10001         1000                       2007-03
10002         999                         2007-03
10003         998                         2007-03
10004         997                         2007-03
10005         996                         2007-03



[解决办法]
select * from TTT a where ID in (select top 5 ID from TTT where DT = a.DT)
[解决办法]


declare @TTT table (ID int, Money int, DT varchar(10))
insert @TTT
select '10001 ', '1000 ', '2007-01 ' union all
select '10002 ', '999 ', '2007-01 ' union all
select '10003 ', '998 ', '2007-01 ' union all
select '10004 ', '997 ', '2007-01 ' union all
select '10005 ', '996 ', '2007-01 ' union all
select '10006 ', '996 ', '2007-01 ' union all
select '10007 ', '996 ', '2007-01 ' union all
select '10008 ', '996 ', '2007-01 ' union all
select '10001 ', '1000 ', '2007-02 ' union all
select '10002 ', '999 ', '2007-02 ' union all
select '10003 ', '998 ', '2007-02 ' union all
select '10004 ', '997 ', '2007-02 ' union all
select '10005 ', '996 ', '2007-02 ' union all
select '10006 ', '996 ', '2007-02 ' union all
select '10001 ', '1000 ', '2007-03 ' union all
select '10002 ', '999 ', '2007-03 ' union all
select '10003 ', '998 ', '2007-03 ' union all
select '10004 ', '997 ', '2007-03 ' union all
select '10005 ', '996 ', '2007-03 ' union all
select '10006 ', '996 ', '2007-03 '

--测试
select * from @TTT a where ID in (select top 5 ID from @TTT where DT = a.DT)

/*
IDMoneyDT
--------------
1000110002007-01
100029992007-01
100039982007-01
100049972007-01
100059962007-01
1000110002007-02
100029992007-02
100039982007-02
100049972007-02
100059962007-02
1000110002007-03
100029992007-03
100039982007-03
100049972007-03
100059962007-03
*/

热点排行
Bad Request.