嵌套查询SQL?

时间:2016-04-15 18:55:11

标签: html sql nest

我在按所需顺序输出记录时遇到问题。我的表看起来像这样:

04/15/2016     8:00  AM - 8:20  AM
04/15/2016     8:20  AM - 8:40  AM
04/15/2016     8:40  AM - 9:00  AM
04/15/2016     9:00  AM - 9:20  AM
04/15/2016     9:20  AM - 9:40  AM
04/15/2016     9:40  AM - 10:00  AM
04/15/2016     10:00  AM - 10:20  AM
04/15/2016     10:20  AM - 10:40  AM
04/15/2016     10:40  AM - 11:00  AM
04/15/2016     11:00  AM - 11:20  AM
04/22/2016     7:30  AM - 7:50  AM
04/22/2016     7:50  AM - 8:10  AM
04/22/2016     8:10  AM - 8:30  AM
04/22/2016     8:30  AM - 8:50  AM
04/22/2016     8:50  AM - 9:10  AM
04/22/2016     9:10  AM - 9:30  AM
04/22/2016     9:30  AM - 9:50  AM
04/22/2016     9:50  AM - 10:10  AM
04/22/2016     10:10  AM - 10:30  AM

如上所示,我每行都有日期值。我想要的输出将只有一个日期值和该日期的所有时间段。这可以使用rowspan或使用colspan在我的th标签中。为了澄清我在这种情况下不能使用javascript并创建动态表。我尝试了,但由于其他一些原因,这种方式无效。我必须将我的值从SQL Query输出到HTML表。所以我想知道最好的方法是什么?我应该使用嵌套查询以及它的外观或其他方法吗?

这是给我单日期的查询:

Select Distinct to_char(s.PTC_DATE,'mm/dd/yyyy')
From EVENTS e
Left Outer Join EVENT_SLOTS s
On e.ID = s.EVENT_ID
Where e.PTC_FLAG = '1'
And e.ID = '3295'   
Order by to_char(s.PTC_DATE,'mm/dd/yyyy')

输出:

10/19/2016
10/20/2016

这是另一个给我时间段的查询:

Select s.SLOT_LABEL
From EVENTS e
Left Outer Join EVENT_SLOTS s
On e.ID = s.EVENT_ID
Where e.PTC_FLAG = '1'
And e.ID = '2519'
Order by s.PTC_DATE, s.DISPLAY_ORDER

输出:

8:00  AM - 8:20  AM
8:20  AM - 8:40  AM
8:40  AM - 9:00  AM
9:00  AM - 9:20  AM
9:20  AM - 9:40  AM
9:40  AM - 10:00  AM
10:00  AM - 10:20  AM
10:20  AM - 10:40  AM
10:40  AM - 11:00  AM
11:00  AM - 11:20  AM
7:30  AM - 7:50  AM
7:50  AM - 8:10  AM
8:10  AM - 8:30  AM
8:30  AM - 8:50  AM
8:50  AM - 9:10  AM
9:10  AM - 9:30  AM
9:30  AM - 9:50  AM
9:50  AM - 10:10  AM
10:10  AM - 10:30  AM

如何将这两个查询和输出记录嵌套在每个日期的单独表中?如果有人可以帮忙解决这个问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

Select s.SLOT_LABEL
From EVENTS e
Left Outer Join EVENT_SLOTS s
On e.ID = s.EVENT_ID
Where e.PTC_FLAG = '1'
And e.ID = '2519'
AND e.PTD_DATE = [DateVariable] --***
Order by s.PTC_DATE, s.DISPLAY_ORDER

***只需拉出所选日期的时间段即可。您可以遍历第一个结果集(所有日期),并将每个结果集传递给此查询。