复杂SQL求教
两张表:租赁合同表和房产表,根据输入时间动态查询租赁的情况
注意:合同并不是连续签约的,因此同一个房产的两个合同可能有间隔时间。
PACT表(房产编号、合同号、开始日期、结束日期)
House_no 		Pact_no 	Startdata		Enddata
101		P1		2010-08-21		2011-08-31
101		P2		2011-10-01		2012-09-31
102		P3		2011-09-01		2013-08-31
102		P4		2013-09-01		2014-08-31
103		P5		2010-05-01		2011-04-30
House表(房产编号、面积)
House_no		Rentarea
101		100
102		80
103		120
104		130
根据提示输入日期,分3个查询,分别查询出签约面积、空置面积、到期未退场面积
比如输入2011-09-15
则签约情况是:(只要输入的时间在签约时间内,则该套房子则为签约房产,统计其面积)
House_no		Rentarea	
102		80
则空置情况是:(输入时间小于签约开始日期或者还未签约的房产)
House_no		Rentarea
101		100
104		130
则到期未退场面积:(输入时间大于最新合同的结束日期)
House_no		Rentarea
103		120
              
------解决方案--------------------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 );