求语句解决思路

求语句
表a
序号  姓名
1   王x
2   刘x
3   张x


表b
序号 员工序号 状态
1         1                进行中
2         1                已完成
.....

求两个语句
一.从表b中随机选择记录,表a中的员工,每人随机选择2条状态为'“进行中'”的记录。
二从表b随机选择10条状态为“进行中”的记录,哪个员工的记录都行。



------解决方案--------------------
用newid()函数来排序
------解决方案--------------------
大概就是这样:
select *
from 
(
select *,
       ROW_NUMBER() over(partition by a.序号 order by newid()) rownum      
from A
left join B on a.序号 = b.员工序号
where b.状态 = '进行中'
)t
where rownum<=2

------解决方案--------------------
引用:
基本可以了。
再问一个问题。
我想将这选中的记录,插到另外的表c,怎么办。
表c的结构和表b相似,多了一个列[日期],用来保存选中记录的日期,如何做?


可以这样:

insert into c
select 需要插入到c表的列,GETDATE()
from 
(
select *,
       ROW_NUMBER() over(partition by a.序号 order by newid()) rownum      
from A
left join B on a.序号 = b.员工序号
where b.状态 = '进行中'
)t
where rownum<=2