原来问题:
按照时间自动编号(SQL)select * from tb where 按照时间自动编号(SQL)
按照时间自动编号(SQL)结果如下:
按照时间自动编号(SQL)time num
按照时间自动编号(SQL)
9:01 23
按照时间自动编号(SQL)
9:02 1.2
按照时间自动编号(SQL)
9:03 112
按照时间自动编号(SQL)
9:04 3
按照时间自动编号(SQL)按照时间自动编号(SQL)  ..
按照时间自动编号(SQL)
按照时间自动编号(SQL)希望得到如下结果:
按照时间自动编号(SQL)id time num
按照时间自动编号(SQL)
1  9:01 23
按照时间自动编号(SQL)
2  9:02 1.2
按照时间自动编号(SQL)
3  9:03 112
按照时间自动编号(SQL)
4  9:04 3
按照时间自动编号(SQL)
5  按照时间自动编号(SQL)  ..
按照时间自动编号(SQL)不用临时表.
按照时间自动编号(SQL)
解决方法1:
按照时间自动编号(SQL)select *,(select count(*from  tb where a.time>=time ) from tb a where
解决方法2:
按照时间自动编号(SQL)select (select count(1from tb b  where a.time>=b.time) as ID, * from tb a
后来想一下,想到另外一种解决方法:
按照时间自动编号(SQL)CREATE TABLE #T([time] nvarchar(5) ,num float)
按照时间自动编号(SQL)
INSERT INTO #T
按照时间自动编号(SQL)
SELECT '9:01'23 UNION ALL
按照时间自动编号(SQL)
SELECT '9:02' ,1.2 UNION ALL
按照时间自动编号(SQL)
SELECT '9:03' ,112 UNION ALL
按照时间自动编号(SQL)
SELECT '9:04' ,3
按照时间自动编号(SQL)
按照时间自动编号(SQL)
SELECT T2.[id],T1.* FROM #T AS T1
按照时间自动编号(SQL)
INNER JOIN 
按照时间自动编号(SQL) (
SELECT A.[time],SUM(1AS [id]  
按照时间自动编号(SQL)  
FROM #T AS A
按照时间自动编号(SQL)  
INNER JOIN #T AS B ON B.[time]<=A.[time]
按照时间自动编号(SQL)  
GROUP BY A.[time]
按照时间自动编号(SQL) ) 
AS T2 ON T2.[time]=T1.[time]
按照时间自动编号(SQL)
DROP TABLE #T
完。
原帖:http://community.csdn.net/Expert/topic/5606/5606978.xml?temp=.4288446

相关文章: