我有talbe库存汽车SQL:哪里有变量?
表车内分贝,租赁:
car_id | store_id ------------------------- 1 | 1 2 | 1 3 | 2 [..] | [..]
where store_id can only be 1 or 2
表的历史:
rental_id | return | rental | car_id ---------------------------------------------------- 1 | 2009.02.02 | 2009.01.12 | 5 2 | 2002.05.24 | 2009.05.01 | 8 3 | NULL | 2016.07.04 | 236 [..] | [..] | [..] | [..]
我不得不返回:
1. STORE_ID
2 。return“return_date”
3.返回的车数2009.11.23
4号车的租用在2009.11.23
凡在2009.11.23一辆车是租来的,如果:
租赁< = 2009.11.23 AND(返回> 2009.11.23或Return NULL)
考虑到日期格式是固定的工作:d
这是我的代码:
SELECT store_id, h.return "return_date" , COUNT (h.return) "cars returned" SUM(CASE WHEN (h.rental < h.return AND (h.return > 2009.11.23 OR h.return IS NULL)) THEN 1 ELSE 0 END) "cars rented" FROM history h JOIN car i ON h.car_id = car.car_id WHERE h.return = 2009.11.23 GROUP BY car.store_id
我所建造的“汽车返回”,并首先在分离表“车租”,并都显示正确的资源ULT。 在只有一个选择,我有以下问题:
的
WHERE h.return = 2009.11.23
will make the "cars rented" always be 0 since
h.return > 2009.11.23
2.
我想避免编写
h.return > 2009.11.23
是否有可能来声明一个变量x所以我可以将其设置为2009.11.23并且写入类似于
SUM(CASE WHEN h.return = x THEN 1 ELSE 0 END) "cars returned" SUM(CASE WHEN (h.rental < h.return AND (h.return > x OR h.return IS NULL)) THEN 1 ELSE 0 END) "cars rented" [...] WHERE x = 2009.11.23
为什么你有日期设置这样呢? – Drew
他们给出,所以我不能改变:( –
喜欢字符串?,, – Drew