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

请求扩展供应商最新单据录入日期SQL查询,关联供应商信息表

没问题,你只需要把原查询的结果和表B做关联就能获取到供应商的额外信息啦。这里分享两种常见的实现方式,你可以根据自己的数据库习惯选择:

方式一:子查询关联

SELECT 
    a.SUPPLIERNUMBER,
    b.SUPPLIERNAME, -- 替换成表B中实际的供应商名字段
    b.SHORTNAME,    -- 替换成表B中实际的供应商简称字段
    b.BANKINFO,     -- 替换成表B中实际的银行信息字段
    a.LATEST_INPUT_DATE
FROM (
    -- 原查询包装成子查询,给最新日期起别名方便引用
    SELECT 
        SUPPLIERNUMBER, 
        MAX(DATEOFINPUT) AS LATEST_INPUT_DATE
    FROM TABLEA 
    WHERE COUNTRY IN ('661') AND COMPANY IN ('01','40') 
    GROUP BY SUPPLIERNUMBER
) a
-- 通过供应商编号关联表B,确保关联字段和实际一致
JOIN TABLEB b ON a.SUPPLIERNUMBER = b.SUPPLIERNUMBER;

如果存在表A有记录但表B无对应供应商的情况,且你想保留这些供应商的信息,可以把JOIN换成LEFT JOIN,此时表B的字段会显示为NULL。

方式二:CTE(公共表表达式)写法

这种写法逻辑更清晰,尤其适合后续要扩展查询的场景:

WITH SupplierLatestDates AS (
    -- 先定义CTE存储原查询的结果
    SELECT 
        SUPPLIERNUMBER, 
        MAX(DATEOFINPUT) AS LATEST_INPUT_DATE
    FROM TABLEA 
    WHERE COUNTRY IN ('661') AND COMPANY IN ('01','40') 
    GROUP BY SUPPLIERNUMBER
)
SELECT 
    s.SUPPLIERNUMBER,
    b.SUPPLIERNAME,
    b.SHORTNAME,
    b.BANKINFO,
    s.LATEST_INPUT_DATE
FROM SupplierLatestDates s
JOIN TABLEB b ON s.SUPPLIERNUMBER = b.SUPPLIERNUMBER;

注意事项

  • 确认表A和表B的关联字段确实是SUPPLIERNUMBER,如果实际是其他字段(比如SUPPLIER_ID),记得替换成真实的关联键
  • 把示例中的b.SUPPLIERNAME等字段名,换成表B中对应的实际字段名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:19:08