包含空值并在查询中正确连接

问题描述

我正在使用oracle sqldeveloper,并且试图生成包含根据日期范围搜索的某些条件下的客户信息的结果。我感觉自己已经接近了,但是我想包括符合所有条件但还没有付款的帐户。

我的预期结果是看起来像这样:

CYCLENUMB | WOCREATIONDATE | POSTINGDATE | CUSTOMERNUMBER | FirsTNAME | LASTNAME | ADDRESS          | WOORDERTYPE | DESCRIPTION | PAYMENT
12        |  29-JUL-20     |  01-AUG-20  |  345506        |  Luke     | Skywalker| 123 Lakeway Dr.  | 636         |Completed    |  $100
24        |  01-AUG-20     |  07-AUG-20  |  456923        |  Leia     | Skywalker| 456 Lakeway Dr.  | 636         |Completed    |  $300
35        |  17-AUG-20     |  24-AUG-20  |  596854        |  Chewy    | Wookie   | 789 Lakeway Dr.  | 636         |Completed    |  NULL
80        |  21-AUG-20     |  28-AUG-20  |  695067        |  Han      | Solo     | 432 Wrongturn Dr.| 636         |Completed    |  NULL
66        |  25-AUG-20     |  30-AUG-20  |  235645        |  Count    | Dooku    | 534 Wrongturn Dr.| 636         |Completed    |  $225

但是我的结果就是这样

CYCLENUMB | WOCREATIONDATE | POSTINGDATE | CUSTOMERNUMBER | FirsTNAME | LASTNAME | ADDRESS          | WOORDERTYPE | DESCRIPTION | PAYMENT
12        |  29-JUL-20     |  01-AUG-20  |  345506        |  Luke     | Skywalker| 123 Lakeway Dr.  | 636         |Completed    |  $100
24        |  01-AUG-20     |  07-AUG-20  |  456923        |  Leia     | Skywalker| 456 Lakeway Dr.  | 636         |Completed    |  $300
66        |  25-AUG-20     |  30-AUG-20  |  235645        |  Count    | Dooku    | 534 Wrongturn Dr.| 636         |Completed    |  $225

下面是我要运行的查询

select customermaster.cyclenumber  as CYCLENUMB,workorder.creationdate as WOCREATIONDATE,MAX(cushistory.postingdate) as POSTINGDATE,cushistory.customernumber as CUSTOMERNUMBER,customerpersonalinfo.firstname as FirsTNAME,customerpersonalinfo.lastname as LASTNAME,premiseaddress.Concatenated_Address  as ADDRESS,workorder.ordertype as WOORDERTYPE,workorderstatus.description as DESCRIPTION,SUM(cushistory.moneysegment1) as PAYMENT
from   customermaster,workorder,customerpersonalinfo,(select
          premiseaddress.company  as  COMPANY,premiseaddress.premisenumber  as PREMISENUMBER,((to_char(premiseaddress.currpremisestreetnumber) || ' ') || premiseaddress.currpremisestreetname)  as  Concatenated_Address
    from premiseaddress)
          premiseaddress,workorderstatus,cushistory

where workorder.ordertype = 636
      and cushistory.moneytypecode1 = 7
      and workorder.application = 3
      and cushistory.postingdate between '01-Aug-20' and '31-Aug-20'
     and customermaster.customernumber = cushistory.customernumber
     and cushistory.customernumber = workorder.customernumber
     and customermaster.company = workorder.company
     and customermaster.accounttype = workorder.application
     and customermaster.customernumber = workorder.customernumber
     and workorder.application = workorderstatus.application
     and workorder.completecode = workorderstatus.workorderstatus
     and customermaster.company = customerpersonalinfo.company
     and customermaster.occupantcisnumber =customerpersonalinfo.cisnumber
     and customermaster.company = premiseaddress.company
     and  customermaster.premisenumber = premiseaddress.premisenumber
 GROUP BY customermaster.cyclenumber,workorder.wocreationdate,cushistory.postingdate,customermaster.customernumber,customerpersonalinfo.firstname,customerpersonalinfo.lastname,premiseaddress.Concatenated_Address,workorder.ordertype,workorderstatus.description
  ORDER BY workorder.creationdate asc

包括一个用于简化客户地址的子查询。从保管处发布的日期是我正在申请的日期范围文件

请注意,保管库表是保存客户编号和付款的主表。我想让它与工作订单表一起加入以包含空值,但是还没有想办法做到这一点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)