我有存储过程,我试图检索由逗号分隔的用户名字符串中列出的每个用户完成的最后一张票。用户可能没有与他们关联的票证,在这种情况下,我知道我只需要返回空值。那我一起工作的两个表的定义如下:SQL Server 2008 - 更新临时表
User
----
UserName,
FirstName,
LastName
Ticket
------
ID,
CompletionDateTime,
AssignedTo,
AssignmentDate,
StatusID
TicketStatus
------------
ID,
Comments
我已经创造了一种我试图返回最后完成票以逗号分隔的用户名列表的存储过程。每条记录都需要包含与其相关的评论。目前,我尝试以下:
CREATE TABLE #Tickets
(
[UserName] nvarchar(256),
[FirstName] nvarchar(256),
[LastName] nvarchar(256),
[TicketID] int,
[DateCompleted] datetime,
[Comments] text
)
-- This variable is actually passed into the procedure
DECLARE @userList NVARCHAR(max)
SET @userList='user1,user2,user2'
-- Obtain the user information for each user
INSERT INTO #Tickets
(
[UserName],
[FirstName],
[LastName]
)
SELECT
u.[UserName],
u.[FirstName],
u.[LastName]
FROM
User u
INNER JOIN dbo.ConvertCsvToTable(@userList) l ON u.UserName=l.item
在这一点上,我的用户名,名字和姓氏为每个用户传入但是,我不知道如何真正得到最后一张票完成。每个用户。
我该怎么做?我相信我应该更新我创建的临时表。同时,id不知道如何获取更新语句中的最后一条记录。
谢谢!
是TicketID顺序(即,每个用户的最后一张门票是否也具有该用户的任何门票的最高ID?)以及如何连接“Ticket”和“User”? 'AssignedTo'是否加入到'UserName'? – 2010-05-13 15:25:26