我有两个存储过程,如下所示:
Select distinct TempName from History_Table
Select TempName,RunDate from History_Table where TempName=@tempname
如何使用单个存储过程获取不同tempname
及其关联的RunDate
的结果集?
TempName RunDate RunBy
1 test 2012-10-11 00:00:00.000 chandu
2 testing 2012-12-15 00:00:00.000 kumar
3 asdsad 2012-08-09 00:00:00.000 asdsad
4 test 2012-12-12 00:00:00.000 asdasds
15 test 2012-10-01 00:00:00.000 asdaddf
15 test 2012-09-12 00:00:00.000 bghgh
I have to display like
TempName RunDate RunBy
test dates(in a dropdown) lastrun name(i.e asdasds)
答案 0 :(得分:1)
从评论中你可以尝试类似的东西(SQL Server 2005 + CTE)
;WITH UNames AS (
Select distinct
TempName
from History_Table
)
Select ht.TempName,
ht.RunDate
from History_Table ht INNER JOIN
UNames u ON ht.TempName = u.TempName
答案 1 :(得分:0)
SQL的结果集必须遵循简单的表格形状。没有简单的方法来获得一个结果,其中有一行,其中一列包含多个值(有一些丑陋的黑客,我不会进入)。
就我而言,最简洁的方法是运行以下查询:
Select TempName,RunDate,RunBy from History_Table ORDER BY TempName,RunDate
然后,无论消费该表的结果是什么,它都应该跟踪它处理的最后TempName
值。如果当前行具有相同的 TempName
值,则应将RunDate
添加到现有下拉列表中。否则,它应为新TempName
创建一个新行,并创建一个只有一个RunDate
值的下拉列表。