Я кое-что новенькое в том, что SQL подвергается воздействию в моей текущей роли.
Как мне написать следующий запрос, чтобы он мог работать?
select *
from property.lease_period lp
where lp.lease_current_stop_date < getdate() and (lp.lease_status = 'Active' or lp.lease_status = 'Overholding')
and lp.period_id = 263 --- Period ID
and lp.building_id = 40000 --- Building ID
and not (SELECT *
FROM property.lease_period lp
inner join lease_deal.lease ld on lp.suite_id = ld.tenancy_reference
where lp.lease_current_stop_date < getdate() and (lp.lease_status = 'Active' or lp.lease_status = 'Overholding')
and lp.period_id = 263
and lp.building_id = 40000)
По сути, я хочупоказать результаты:
select *
from property.lease_period lp
where lp.lease_current_stop_date < getdate() and (lp.lease_status = 'Active' or lp.lease_status = 'Overholding')
and lp.period_id = 263 --- Period ID
and lp.building_id = 40000 --- Building ID
без учета результатов, которые соответствуют:
SELECT *
FROM property.lease_period lp
inner join lease_deal.lease ld on lp.suite_id = ld.tenancy_reference
where lp.lease_current_stop_date < getdate() and (lp.lease_status = 'Active' or lp.lease_status = 'Overholding')
and lp.period_id = 263
and lp.building_id = 40000
Извините за основной вопрос!Кроме того, любые другие советы, кроме этого, для лучшего форматирования моего SQL будут с благодарностью!
Edit :
Я считаю, что это может быть решением для того, что я ищудля:
select
*
from
property.lease_period lp
where
lp.lease_current_stop_date < getdate() and (lp.lease_status = 'Active' or lp.lease_status = 'Overholding')
and lp.period_id = 263 --- Period ID
and lp.building_id = 40000 --- Building ID
and not exists
(
select 1
from lease_deal.lease
where lp.suite_id = tenancy_reference
)
order by period_id desc
Определенно заинтересован в том, чтобы услышать лучшие способы написания этого!