【问题标题】:BIRT SQL Null Case ScenarioBIRT SQL Null 案例场景
【发布时间】:2015-02-23 11:27:11
【问题描述】:

我正在使用以下 SQL 语句来检索有关工单的各种信息。但是,其中一些没有列出资产(NULL),在这种情况下,我得到 0 行:

select PM17, WORKORDER.PMNUM, WORKORDER.ASSETNUM, ASSET.DESCRIPTION, ASSET.MANUFACTURER, EQASSETNUM, WORKORDER.LOCATION, LOCATIONS.DESCRIPTION, PM.ROUTE, TARGSTARTDATE, TARGCOMPDATE, PM.NEXTDATE
from WORKORDER 
JOIN ASSET ON WORKORDER.ASSETNUM = ASSET.ASSETNUM
JOIN PM ON WORKORDER.PMNUM = PM.PMNUM
JOIN LOCATIONS ON WORKORDER.LOCATION = LOCATIONS.LOCATION
WHERE WORKORDER.WONUM='1011';

如何修改我的语句以适用于这两种情况(有或没有 ASSETNUM)?

案例 1 (ASSETNUM != NULL)--> 显示所有选择的字段

案例 2 (ASSETNUM = NULL) --> 显示不依赖于 ASSETNUM 的字段,其余部分返回 null

【问题讨论】:

    标签: sql birt


    【解决方案1】:

    将您的 JOIN 更改为 LEFT JOIN

    select PM17, WORKORDER.PMNUM, WORKORDER.ASSETNUM, ASSET.DESCRIPTION, ASSET.MANUFACTURER, EQASSETNUM, WORKORDER.LOCATION, LOCATIONS.DESCRIPTION, PM.ROUTE, TARGSTARTDATE, TARGCOMPDATE, PM.NEXTDATE
    from WORKORDER 
    LEFT JOIN ASSET ON WORKORDER.ASSETNUM = ASSET.ASSETNUM
    JOIN PM ON WORKORDER.PMNUM = PM.PMNUM
    JOIN LOCATIONS ON WORKORDER.LOCATION = LOCATIONS.LOCATION
    WHERE WORKORDER.WONUM='1011';
    

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2021-01-19
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多