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

SQL多表JOIN及CASE逻辑实现:WORK与ORG表查询问题求助

实现方案

原有SQL语法问题修正

你之前写的SQL存在几处语法错误,先修复:

  • select子句中A.WORK_ZIP后缺少逗号分隔字段
  • 子查询中WORK_ZIP后缺少逗号,count(distinct)函数内多了多余的逗号和无效的表别名A.前缀

最终关联ORG表的SQL

使用LEFT JOIN关联ORG表,以两张表共有的ARB_REF作为关联键,通过判断关联结果是否非空输出result字段值,同时带出机构名称:

select 
    A.ARB_REF, 
    A.WORK_STREET, 
    A.WORK_NUM, 
    A.WORK_ZIP,
    case when B.B = 1 then 'OK' else 'not ok' end as street_zip_check,
    case when O.ARB_REF is not null then 'yes' else 'no' end as result,
    O.NAME
from 
    WORK A
join 
    (select  
         WORK_STREET, 
         WORK_ZIP,
         count(distinct WORK_NUM) as B
     from 
         WORK
     group by 
         WORK_STREET, WORK_ZIP
    ) B 
    on B.WORK_STREET = A.WORK_STREET 
    and B.WORK_ZIP = A.WORK_ZIP
left join ORG O
    on A.ARB_REF = O.ARB_REF

如果不需要关联失败的记录显示NAME为NULL,可以把O.NAME替换为case when O.ARB_REF is not null then O.NAME else '' end as NAME即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:42:02