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

请求协助:查询已提供特定服务但未生成对应账单的工单

解决工单服务未生成账单的查询方案

嘿,我完全懂你现在的困扰——要找出那些已经提供了特定服务,但对应订单里该服务却没生成账单的工单,确实得把几个表的关联逻辑捋顺才行。我先基于常见的业务表结构给你写示例查询,你可以根据自己的实际表名/字段直接替换,之后再拆解思路:

假设的核心表结构

先默认你有这几个关键表(如果你的表结构不同,直接替换字段/表名即可):

  • work_orders(工单表):存储工单基础信息,比如work_order_id(唯一工单ID)、order_id(关联的订单ID)
  • work_order_services(工单服务关联表):记录工单内已提供的服务,包含work_order_id、service_id(目标服务的ID)、service_provided_date(服务完成日期)
  • invoices(账单表):记录账单头部信息,比如invoice_id、order_id
  • invoice_line_items(账单明细表):记录账单里的具体服务条目,包含invoice_id、service_id、order_id

高效查询语句(NOT EXISTS 写法)

这种写法性能通常更好,适合数据量较大的场景:

-- 记得把占位符替换成你实际的表名、字段和特定服务ID
SELECT 
    wo.work_order_id,
    wo.order_id,
    wos.service_id,
    wos.service_provided_date
FROM 
    work_orders wo
JOIN 
    work_order_services wos ON wo.work_order_id = wos.work_order_id
WHERE 
    -- 筛选你要排查的特定服务
    wos.service_id = 'SPECIFIC_SERVICE_ID'
    -- 核心逻辑:检查该工单+服务组合,有没有对应的账单明细条目
    AND NOT EXISTS (
        SELECT 1
        FROM invoice_line_items ili
        JOIN invoices i ON ili.invoice_id = i.invoice_id
        WHERE 
            ili.order_id = wo.order_id
            AND ili.service_id = wos.service_id
    );

另一种写法(左连接+空值判断)

如果更习惯用连接的思路,也可以这么写:

SELECT 
    wo.work_order_id,
    wo.order_id,
    wos.service_id,
    wos.service_provided_date
FROM 
    work_orders wo
JOIN 
    work_order_services wos ON wo.work_order_id = wos.work_order_id
-- 左连接账单明细,匹配订单+服务的组合
LEFT JOIN 
    invoice_line_items ili 
    ON ili.order_id = wo.order_id 
    AND ili.service_id = wos.service_id
LEFT JOIN 
    invoices i ON ili.invoice_id = i.invoice_id
WHERE 
    wos.service_id = 'SPECIFIC_SERVICE_ID'
    -- 左连接后无匹配结果,说明该服务没生成账单
    AND ili.invoice_line_item_id IS NULL;

思路拆解

  1. 先通过work_orders和work_order_services关联,拿到所有已提供目标服务的工单记录
  2. 再通过NOT EXISTS或左连接的方式,检查这些工单+服务组合,是否在账单明细中存在对应条目——不存在的就是你要找的未生成账单的工单
  3. 如果需要按时间范围筛选(比如最近一个月的服务),直接在WHERE里加wos.service_provided_date BETWEEN '2024-01-01' AND '2024-01-31'这类条件就行

要是你的实际表结构和我假设的不一样(比如没有单独的账单明细表,服务直接存在账单主表),可以把你的表结构和字段说明告诉我,我再帮你调整查询语句~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:40:47