1

我可以按时间升序获取行集。我拥有的列是:艺术家姓名、行动日期和城市名称。查询如下所示:

SELECT T_Action.Artist,
   T_ActionDates.ActionDate,
   T_City.Name
FROM   T_Action
   INNER JOIN T_ActionDates
        ON  T_Action.ID = T_ActionDates.ActionID
   INNER JOIN T_ActionPlace
        ON  T_Action.ActionPlaceID = T_ActionPlace.ID
   INNER JOIN T_City
        ON  T_ActionPlace.CityID = T_City.ID
WHERE  T_Action.ETicketEnabled = 1
   AND T_ActionDates.ActionDate >= GETDATE()
ORDER BY
   T_ActionDates.ActionDate

我应该在 ASP.NET 转发器控件中显示这组行,但它们应该按时间排序并分别按特定城市分组。例如:

城市1:

2013-01-01, Action1

2013-01-02, Action2

城市2:

2013-02-01, Action1

2013-02-02, Action2

2013-02-03, Action3

等等。

我可以直接在 SQL 中执行此操作,还是应该使用后面的代码来排列数据?首选方式是通过 SQL。

4

1 回答 1

3

您将希望按城市对结果进行排序,然后自己对其进行迭代。所以你ORDER BY很可能ORDER BY T_City.Name, T_ActionDates.ActionDate。然后,您将需要自己智能地迭代它们以显示您的分组。

SQL 为每个查询返回一个具有集合结构的单个结果集(即它提前知道列并计算行数据)。它不会做主从行或类似的事情。随你(由你决定。

于 2013-09-17T12:32:15.693 回答