这是我的第一个tsql proc。
我必须将表中的信息分组到其他表中。在我的输入表格中,一个人可能有多条记录(name
+ zip
+ dob
+ incident_date
)
我必须将它们分组并将它们添加到其他表格
Select Distinct
1 As recordid,
r.firstname + ' ' + r.lastname As fullname,
STUFF
(
(
Select ',' + Cast(a.[TicketID] As Varchar)
From tmp a
Where r.[FirstName] = a.[FirstName]
And r.[LastName] = a.[LastName]
And r.zip = a.zip
And r.dob = a.dob
And r.incidentDate = a.incidentDate
For XML Path('')
), 1, 1, ''
) As textCol2,
(
Select Count(*) cnt
From tmp a
Where r.[FirstName] = a.[FirstName]
And r.[LastName] = a.[LastName]
And r.zip = a.zip
And r.dob = a.dob
And r.incidentDate = a.incidentDate
) count_incident
From tmp r
以上sql的性能是否良好
或 你能建议我如何在商店程序中实现这一点 我应该打开一个循环并使用变量来连接记录
create cursor c1
select distinct [FirstName], [LastName],
a.zip, dob, incidentDate from tmp
open cursor c1
while
code to fetch records for each row in c1
open another cursor....
答案 0 :(得分:0)
肖恩·朗格已经回答了这个问题。谢谢先生
存储过程本身并不比ad hoc查询快。但是对于数百万行,你绝对需要避免使用基于游标的方法......