复杂SQL求教
两张表:租赁合同表和房产表,根据输入时间动态查询租赁的情况
注意:合同并不是连续签约的,因此同一个房产的两个合同可能有间隔时间。
PACT表(房产编号、合同号、开始日期、结束日期)
House_no Pact_no StartdataEnddata
101P12010-08-212011-08-31
101P22011-10-012012-09-31
102P32011-09-012013-08-31
102P42013-09-012014-08-31
103P52010-05-012011-04-30
House表(房产编号、面积)
House_noRentarea
101100
10280
103120
104130
根据提示输入日期,分3个查询,分别查询出签约面积、空置面积、到期未退场面积
比如输入2011-09-15
则签约情况是:(只要输入的时间在签约时间内,则该套房子则为签约房产,统计其面积)
House_noRentarea
10280
则空置情况是:(输入时间小于签约开始日期或者还未签约的房产)
House_noRentarea
101100
104130
则到期未退场面积:(输入时间大于最新合同的结束日期)
House_noRentarea
103120
SQL
[解决办法]
select house_no, rentarea from house
where house.house_no in ( select house_no from pact
where pact.startdata <= v_query_date
and pact.enddata >= v_query_date );
select house_no, rentarea from house
where house.house_no not in ( select house_no from pact
where pact.startdata <= v_query_date
and pact.enddata >= v_query_date );
select house_no, rentarea from house
where house.house_no in ( select house_no from pact
where pact.enddata < v_query_date );
第三个需求描述的有些问题!!!