我必须显示一小时内所需的人数。 我有两张桌子:
Table 1: Time 0:00 1:00 2:00 ... 22:00 23:00
然后是预定的时间和日期
Table 2: 2:00 , 3people , 10-6-15 5:00 , 1people , 10-6-15 9:00 , 2people , 10-2-15
所以我想要的是:
On 10-6-15 enter code here 0:00 0 1:00 0 2:00 3 3:00 0 4:00 0 5:00 1 6:00 0 7:00 0 8:00 0 9:00 0 10:00 0 11:00 0 12:00 0 13:00 0 14:00 0 15:00 0 16:00 0 17:00 0 18:00 0 19:00 0 20:00 0 21:00 0 22:00 0 23:00 0
问题是,如果我没有设置日期范围,它可以正常工作,但是当我这样做时,它开始只有那些轮班人员。
我的代码是:
Select distinct [Time] from [Table1] left join [Schedule] on
[Table1].[Time]=[Schedule].[Time] where [Schedule].[Date] = #10/6/15#
Group by [Table1].[Time];
它给了我
2:00 3
5:00 1
我使用正确的加入吗?还有其他我想念的东西吗?
答案 0 :(得分:2)
您似乎错过了一些查询,但我认为问题在于限制WHERE子句中的日期而不是JOIN。
尝试:
Select
[Date],
[Time],
sum(ppl)
from
[Table1] left join
[Schedule] on
[Table1].[Time]=[Schedule].[Time] and
[Schedule].[Date] = #10/6/15#
Group by
[Date],
[Table1].[Time]
我认为你必须分两步完成。有一个查询限制您的left outer join
表:
QRY:
Select
*
from
[Schedule]
where
[Schedule].[Date] = #10/6/15#
然后第二个人做left outer join
:
Select
[Date],
[Time],
sum(ppl)
from
[Table1] left join
qry on
[Table1].[Time]=qry.[Time]
Group by
[Date],
[Table1].[Time]