You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关联Trips等3张表并统计客户对应各行程的记录数?

客户与行程全组合的记录统计视图解决方案

原查询的问题在于:先通过TripRecords关联客户和行程,导致只有客户存在对应行程记录时,该行才会出现,无法生成所有客户×所有行程的全量组合。

要实现需求,核心是先生成客户与行程的全交叉组合,再关联行程记录表统计数量:

CREATE VIEW CustomerTripRecordCounts AS
SELECT 
    c.CustID,
    t.TripRecordID AS TripID,
    COUNT(tr.TripRecordID) AS TripCount
FROM dbo.Customers c
-- 生成所有客户与所有行程的全量配对
CROSS JOIN dbo.Trips t
-- 左连接行程记录,匹配当前客户和行程的对应记录
LEFT OUTER JOIN dbo.TripRecords tr 
    ON tr.CustID = c.CustID 
    AND tr.TripRecordID = t.TripRecordID
-- 按客户和行程分组统计
GROUP BY c.CustID, t.TripRecordID

关键说明:

  • CROSS JOIN:强制生成所有客户与行程的组合,确保每个客户对每个行程都有一行,新增行程后视图会自动包含新的客户-行程行。
  • 左连接的关联条件同时绑定CustID和TripRecordID,精准匹配当前客户-行程对应的记录。
  • COUNT(tr.TripRecordID):统计有效记录数,当客户在该行程下无记录时,tr.TripRecordID为NULL,COUNT会忽略NULL返回0,符合需求。

内容的提问来源于stack exchange,提问作者Transitory

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:01:02