我有一个要求,我完全混淆了如何编写查询。我是这家公司的新手,所以请帮助我
用户将选择以下日期:
例:
fromDate:2013-08-02
toDate:2013-09-03
(YYYY-MM-DD)
id resort_id room_id Date1 Date2 price
5 35 45 2013-11-01 2013-11-30 3000.00
6 35 50 2013-07-25 2013-08-25 2000.00
7 35 541 2013-07-25 2013-08-25 4000.00
8 35 541 2013-08-26 2013-09-26 4000.00
现在我应该按房间ID为日期组的每个日期或价格总和得到基于价格的结果
预期结果
id resort_id room_id Date1 Date2 price
6 35 50 2013-07-25 2013-08-25 2000.00
7 35 541 2013-07-25 2013-08-25 4000.00
8 35 541 2013-08-26 2013-09-26 4000.00
OR
id resort_id room_id price
6 35 50 2000.00
7 35 541 8000.00
答案 0 :(得分:3)
SELECT * FROM lr_price_peak_rates WHERE `from_date`>='2014-04-08' AND `to_date`<='2014-04-30'
尝试上面的查询它可以正常工作
答案 1 :(得分:2)
尝试此查询
SELECT * FROM `rooms` WHERE "2013-08-02" between Date1 AND Date2 UNION
SELECT * FROM `rooms` WHERE "2013-09-03" BETWEEN Date1 AND Date2
它是一个单一的查询。将其分为两行以便于阅读。我很确定这个查询缺少一些东西。我需要一个更大的测试集来验证。这不会选择中间案例。 使用用户选择的日期更改第一个日期。
答案 2 :(得分:1)
尝试此查询
SELECT
id,
resort_id,
room_id,
Date1,
Date2,
SUM(price) AS Total_Price
FROM
MyTable
WHERE Date1> '2013-02-08' AND Date2 < '2013-02-09'
答案 3 :(得分:1)
嘿试试这个(sql server)
SELECT room_id,SUM(price)FROM @table WHERE date1&gt; ='07/25 / 2013'and date2&lt; ='09/26/2013'GROUP BY room_id
答案 4 :(得分:0)
select * from table_name where date1 > '08/02/2013' AND date2 < '09/02/2013' ORDER BY date1 ASC, price ASC
答案 5 :(得分:0)
SELECT * FROM rooms
Date1和Date2 UNION之间的日期
SELECT * FROM rooms
日期BETWEEN Date1和Date2