我正在一个随机选择员工进行随机药物测试的网站上工作。我试图找出使用SQL Server 2008,ASP.NET和C#的报告/代码。 这是我迄今为止所做的工作的一个例子: 我需要做的是为员工分配号码的特定公司生成所有员工的报告。此代码示例如下:
SELECT
dbo.names2.ssn, dbo.names2.firstname, dbo.names2.lastname,
ROW_NUMBER() over(order by dbo.names2.ssn) as RowNumber
FROM
dbo.names2
WHERE
dbo.names2.code = 8562
此查询返回12条记录编号1-12,其中包含员工社会安全号码,名字和姓氏 我现在需要找出一个查询,这样当我进入我的asp.net网页并输入我需要5名员工进行随机测试时,我得到一个查询,返回员工在上面的查询中关联的行号报告的一页,并在报告的第二页上返回上面查询中分配的号码以及员工SSN,名字和姓氏。
谢谢, TY
答案 0 :(得分:0)
我会ORDER BY NEWID()生成随机GUID和SELECT TOP 5.
编辑。此查询有2个返回结果。 1是完整的员工列表,另一个是与员工列表中rownum对应的5个随机选择的数字列表。
IF (OBJECT_ID(N'tempdb..#tempTable') IS NOT NULL)
DROP TABLE #tempTable ;
CREATE TABLE #tempTable
(
RowNum INT ,
SSN VARCHAR(16) ,
FirstName VARCHAR(64) ,
LastName VARCHAR(64)
);
INSERT INTO [#tempTable]
([RowNum] ,
[SSN] ,
[FirstName] ,
[LastName]
)
SELECT ROW_NUMBER() OVER(ORDER BY dbo.names2.ssn) AS RowNum ,
dbo.names2.ssn ,
dbo.names2.firstname ,
dbo.names2.lastname
FROM dbo.names2
WHERE dbo.names2.code = 8562
SELECT [RowNum] ,
[SSN] ,
[FirstName] ,
[LastName]
FROM [#tempTable] AS tt
SELECT TOP 5 RowNum
FROM [#tempTable] AS tt
ORDER BY NEWID()