日期:2014-05-16  浏览次数:20703 次

如何查询同一日期内随机几条数据?
表是这样的,数据内容全部为CHAR型。
日期     号码     姓名     支出   
140301  10001   张三     300
140301  10001   张三     20
140301  10001   张三     30
140220  10001   张三     60
140325  10002   李四     300
140301  10001   张三     300
140301  10002   李四     20
140301  10001   张三     30
140220  10001   张三     60
140325  10002   李四     300
140301  10001   张三     300
140301  10001   张三     20
140301  10001   张三     30
140220  10001   张三     60
140325  10001   张三     300
.
.
.
.


查询的结果是每个日期内小于200条数据的随机显示5条数据不足5条按实际数算,200-600条数据的随机显示10条数据,怎么写这语句?






------解决方案--------------------
修改一下  没看见是每天的
DECLARE @countnum INT 
SELECT TOP 1 @countnum=num FROM (SELECT COUNT(1) AS num,日期 FROM tb  GROUP BY 日期)AS t ORDER BY num DESC
 
IF @countnum<200
SELECT TOP 5 * FROM tb ORDER BY NEWID()
IF @countnum>200 AND @countnum<600
SELECT TOP 10* FROM tb ORDER BY NEWID()