这样看一下。这个是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'