2013-04-04 170 views
-2

我很困惑从我的表中选择汽车可用性,因为我想列出给定分支中的所有可用车辆 我已经写了这个查询,但我的大脑坚持继续!SQL选择记录

SELECT MODEL, MAKE, START_DATE, TERMINATION_DATE 

FROM VEHICLE_TYPE, VEHICLE, HIRE_AGREEMENT 

WHERE VEHICLE_TYPE.VEHICLE_TYPE_ NUN = VEHICLE. VEHICLE_TYPE_NO 

AND VEHICLE.VEHICLE_REG_NUM = HIRE_AGREEMENT.VEHICLE_REG_NO 
AND ; 

我相信从start_date和termination_date我可以得到汽车的可用性,但如何?

+1

请添加表格结构,示例数据和预期输出。并且[SQLFiddle示例](http://sqlfiddle.com)也不会受到影响。 – 2013-04-04 23:00:49

+0

你是什么意思“在给定的分支”?你准确的标准是什么? – 2013-04-04 23:00:51

+1

欢迎来到论坛。请阅读思考如何提问的链接 - http://stackoverflow.com/questions/how-to-ask。请显示您的所有表格模式。什么是“分支”,这与您的查询有什么关系? – OldProgrammer 2013-04-04 23:02:38

回答

0

首先,你应该做的,而不是加入旧的学校的东西。根据你提供的信息,这样的事情是我能建议的最好的。

SELECT Vehicle.Model, Vehicle.Make, Hire_Agreement.Start_Date, 
    Hire_Agreement.termination_date FROM Vehicle 
    NATURAL INNER JOIN Hire_Agreement 
    WHERE 
    Hire_agreement.terminationDate >= Date() AND Hire_agreement.start_date <= Date(); 

这是我所能做的,考虑到你没有给我们你的模式或SQL风格。

+0

感谢苏格兰威士忌,你的方法是辉煌的,它的工作完美,但我已经删除了start_date,而是使用Date()我用SYSDATE替换它... – chris 2013-04-05 20:35:58

0

如果我理解正确的话,这样的事情应该工作:

SELECT MODEL, MAKE, START_DATE, TERMINATION_DATE 
FROM VEHICLE_TYPE, VEHICLE, HIRE_AGREEMENT 
WHERE VEHICLE_TYPE.VEHICLE_TYPE_ NUN = VEHICLE. VEHICLE_TYPE_NO 
AND VEHICLE.VEHICLE_REG_NUM = HIRE_AGREEMENT.VEHICLE_REG_NO 
AND GETDATE() BETWEEN VEHICLE.START_DATE AND VEHICLE.TERMINATION_DATE 

应该返回可作为当前日期的所有车辆