我有三张table:
Trips
,包含TripRecordID
和TripName
TripRecords
,包含该行程记录的TripRecordID
、CustID
和其他详细信息Customers
,包含CustID
和客户信息
我想要的是一个视图,列出每个客户与Trip
表中存在的每一次旅行的一行,以及该客户存在多少旅行记录的计数(可以是0),例如。
如果有2次行程和4个客户,该视图将列出每个客户两次,一次用于行程1,一次用于行程2。在每一行中,它将计算该客户具有与指定行程匹配的记录的次数。如果我们再增加一次行程,每个客户将得到3排,以此类推。
例如:
我正在努力编写查询。此查询返回每个客户,但不是每个行程的一行(因为并非所有客户都在所有行程中):
SELECT c.CustID, t.TripID, COUNT (tr.TripID) AS TripCount
FROM dbo.Customers c
LEFT OUTER JOIN dbo.TripRecords tr ON tr.CustID = c.CustID
LEFT OUTER JOIN dbo.Trips t ON tr.TripID = t.TripID
GROUP BY c.CustID, t.TripID
1条答案
按热度按时间s8vozzvw1#
根据您需要的数据构建您的查询。因此,如果您想为每个客户安排一行,则每次旅行都需要
CROSS JOIN
,它提供了每种组合。然后,您可以执行LEFT JOIN
来查看每种组合发生了多少次。