1

我有两个存储过程,如下所示:

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)
4

2 回答 2

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
于 2012-10-30T04:32:58.907 回答
0

SQL 的结果集必须遵循简单的表格形状。没有简单的方法来获得只有一行的结果,其中一列包含多个值(有一些丑陋的黑客,我不会进入)。

就我而言,最干净的方法是运行以下查询:

Select TempName,RunDate,RunBy from History_Table ORDER BY TempName,RunDate

然后,无论在消耗这个表的结果时,它都应该跟踪TempName它处理的最后一个值。如果当前行具有相同 TempName的值,则应将其添加RunDate到现有下拉列表中。否则,它应该为新行创建一个新行并创建一个只有一个值TempName的下拉列表。RunDate

于 2012-10-30T07:34:35.800 回答