求助查询为何查询不出数据来是不是我的命令有问题

SELECT A.ISDIRECT ,B.DIVISION ,C.`MONTH`,D.BUDGET_MON FROM ods_xms_hotelid AS A ,ods_fr_hotelextend AS B ,dw_fd_ynjourrep AS C, ods_fr_hotincomebudget AS D WHERE  A.HOTELID=B.HOTELID=C.HOTELID=D.HOTELID and A.SECTIONID = 'HOTEL'   AND C.DATE=2019-03-02

有四个表 想通过hotelid联系起来 但是为什么查询不出数据来源 是不是我的命令是错的image.png

FineReport 帆软用户A5K1Xo5JDb 发布于 2023-4-18 16:23
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-4-18 16:24(编辑于 2023-4-18 16:41)

image.png

----------------

SELECT A.ISDIRECT ,B.DIVISION ,C.`MONTH`,D.BUDGET_MON FROM 

ods_xms_hotelid AS A  left  join ods_fr_hotelextend AS B  on  A.HOTELID=B.HOTELID

left join dw_fd_ynjourrep AS C on A.HOTELID=C.HOTELID --AND C.DATE=2019-03-02

left join ods_fr_hotincomebudget AS D on  A.HOTELID=D.HOTELID

WHERE   A.SECTIONID = 'HOTEL'   --AND C.DATE=2019-03-02

  • 帆软用户A5K1Xo5JDb 帆软用户A5K1Xo5JDb(提问者) 不行
    2023-04-18 16:26 
  • Z4u3z1 Z4u3z1 回复 帆软用户A5K1Xo5JDb(提问者) 没指定join方式 默认是 inner join (可以理解为交集),肯定有张表里用来on 的字段不符合条件
    2023-04-18 16:29 
  • 帆软用户A5K1Xo5JDb 帆软用户A5K1Xo5JDb(提问者) 回复 Z4u3z1 去掉C表就有数据了 这个该怎么解决呀
    2023-04-18 16:33 
  • Z4u3z1 Z4u3z1 回复 帆软用户A5K1Xo5JDb(提问者) 不好说 你们的原始数据什么样?需要的结果什么样都不清楚不清楚改怎么join 只能给你一个示例参考(补充在上面,注释掉的AND C.DATE=2019-03-02,这个位置影响结果)
    2023-04-18 16:41 
最佳回答
0
用户6NWif5139660Lv6资深互助
发布于2023-4-18 16:24

用 left join吧

最佳回答
0
CD20160914Lv8专家互助
发布于2023-4-18 16:43

这样看一下。这个是join的方式

SELECT A.ISDIRECT ,B.DIVISION ,C.`MONTH`,D.BUDGET_MON 

FROM ods_xms_hotelid AS A ,

ods_fr_hotelextend AS B ,

dw_fd_ynjourrep AS C, 

ods_fr_hotincomebudget AS D 

WHERE  A.HOTELID=B.HOTELID

and C.HOTELID=D.HOTELID 

and A.SECTIONID = 'HOTEL'   

AND C.DATE='2019-03-02'

改成left join的方式

SELECT A.ISDIRECT ,B.DIVISION ,C.`MONTH`,D.BUDGET_MON,A.SECTIONID,C.DATE

FROM ods_xms_hotelid AS A ,

ods_fr_hotelextend AS B ,

dw_fd_ynjourrep AS C, 

ods_fr_hotincomebudget AS D 

WHERE  A.HOTELID=B.HOTELID(+) 

and C.HOTELID=D.HOTELID(+) 

/*如果没有数据依次把最后两个条件先删除,然后看一下你的数据出来的结果是什么*/

/*还有注意一下你的c.date在数据库的格式是什么*/

and A.SECTIONID = 'HOTEL'  

AND C.DATE='2019-03-02'

  • 3关注人数
  • 197浏览人数
  • 最后回答于:2023-4-18 16:43
    请选择关闭问题的原因
    确定 取消
    返回顶部