Oracle SQL,选择日期并与空值进行比较
我需要选择并比较广告中的最后一个广告日期,以及租赁中的任何空值,以获取未租赁的财产和最后一次广告的时间。这是我到目前为止的代码Oracle SQL,选择日期并与空值进行比较,sql,database,oracle,Sql,Database,Oracle,我需要选择并比较广告中的最后一个广告日期,以及租赁中的任何空值,以获取未租赁的财产和最后一次广告的时间。这是我到目前为止的代码 SELECT YR_LEASE.PROPERTYNUM, MAX(YR_ADVERT.DATETO), count(YR_LEASE.RENTERNUM) FROM YR_LEASE JOIN YR_ADVERT ON YR_LEASE.PROPERTYNUM=YR_ADVERT.PROPERTYNUM GROUP BY YR_LE
SELECT YR_LEASE.PROPERTYNUM,
MAX(YR_ADVERT.DATETO),
count(YR_LEASE.RENTERNUM)
FROM YR_LEASE
JOIN YR_ADVERT
ON YR_LEASE.PROPERTYNUM=YR_ADVERT.PROPERTYNUM
GROUP BY YR_LEASE.PROPERTYNUM
这返回的计数太高了,我不确定我做错了什么,这是我的ERD,尝试给这个问题一些背景
我认为您需要首先确定未出租的房产。从那里你可以找到最新的广告日期。假设某些属性从未被广告,您将需要通过YR_属性进行左连接以包括未广告的属性
SELECT NVL(TO_CHAR(MAX(YR_ADVERT.DATETO),'DD/MM/YYYY'),'NO LAST ADVERT DATE') LAST_ADVERT_DATE
,YR_PROPERTY.PROPERTYNUM
FROM YR_PROPERTY LEFT JOIN YR_ADVERT ON YR_PROPERTY.PROPERTYNUM = YR_ADVERT.PROPERTYNUM
WHERE NOT EXISTS (SELECT 1
FROM YR_LEASE
WHERE YR_LEASE.PROPERTYNUM = YR_PROPERTY.PROPERTYNUM
AND YR_LEASE.RENT_FINISH > SYSDATE)
GROUP BY YR_LEASE.PROPERTYNUM;