我可以按升序时间顺序获取行集。我拥有的列是:艺术家姓名,行动日期和城市名称。查询如下所示:
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转发器控件中显示这组行,但它们应按时间排序并按特定城市分别进行分组。例如:
City1:
2013-01-01, Action1
2013-01-02, Action2
城2:
2013-02-01, Action1
2013-02-02, Action2
2013-02-03, Action3
等等。
我可以直接在SQL中执行此操作,还是应该使用后面的代码来安排数据?首选方法是通过SQL。
答案 0 :(得分:3)
您需要按城市订购结果,然后自己迭代。因此,ORDER BY
可能是ORDER BY T_City.Name, T_ActionDates.ActionDate
。然后,您需要自己智能地迭代它们以显示您的分组。
SQL为每个查询返回一个具有集合结构的结果集(即,它提前知道列并计算行数据)。它不会做主 - 细节行或类似的东西。这取决于你。