SQL按小时获得不同的客户数

问题描述 投票:0回答:1

我有两个带有datein和timein的表,该表在下订单时记录,而另一个表具有datepicked和timepicked的列,该表在从订单中提取发票时记录。我需要找出我每小时有多少客户,但是有些正在下订单,有些正在提取发票,有些同时在做。同一天/小时,同一位客户的订单和发票可能不止一个。

OrderTable:
Ordernum
CustomerID
datein
timein

InvoiceTable:
CustomerID
InvoiceID
datepicked
timepicked 

我尝试过此SQL,但是我无法找到如何从两个表中获取DISTINCT CUSTOMERID以及在两个表中都排列了日期和小时数的结果,我注意到,如果每天一小时没有订单列没有阵容。

Select o.datein, i.datepicked, (o.datein) As iDay, HOUR(o.timein) as iH,
DayOfMonth(i.datepicked) As pDay, HOUR(i.timepicked) as pH, Count(*) as Total
from OrderTable o, InvoiceTable i
Where
o.datein >= '2019-01-01' and o.datein <= '2019-12-31'
GROUP BY o.datein, i.datepicked, iDay, iH, pDay, pH

感谢您的帮助。金

sql distinct advantage-database-server
1个回答
0
投票
如果您在这两个表之间有关系,则可能。如果我了解您要执行的操作,则InvoiceTable必须是OrderTable的子表,该表的外键字段“ OrderNum”与其父级“ OrderTable”主键“ OrderNum”相关。因此,您不需要InvoiceTable上的字段“ CusotmerID”,并且您会知道何时提取的发票属于同一天的订单。
© www.soinside.com 2019 - 2024. All rights reserved.