3

我有一个要求,我完全困惑如何编写查询。我是这家公司的新手,所以请帮助我

用户将选择以下日期:

例如:从日期:到日期2013-08-022013-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

或者

id  resort_id      room_id  price
6   35             50       2000.00
7   35             541      8000.00
4

6 回答 6

3
SELECT * FROM lr_price_peak_rates  WHERE  `from_date`>='2014-04-08' AND `to_date`<='2014-04-30' 

尝试上面的查询它可以正常工作

于 2014-04-02T07:04:35.830 回答
2

试试这个查询

SELECT * FROM `rooms` WHERE "2013-08-02" between Date1 AND Date2 UNION 
SELECT * FROM `rooms` WHERE "2013-09-03" BETWEEN Date1 AND Date2

它是一个单一的查询。将其分成两行以便于阅读。我很确定这个查询缺少一些东西。我需要一个更大的测试集来验证。这不会选择中间情况。使用用户选择的日期更改第一个日期。

于 2013-08-07T11:43:04.090 回答
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'
于 2013-08-07T11:08:31.747 回答
1

嘿试试这个(sql server)

SELECT room_id,SUM(price) FROM @table WHERE date1>='07/25/2013' AND date2<='09/26/2013' GROUP BY room_id

于 2013-08-07T11:29:42.427 回答
0
select * from table_name where date1 > '08/02/2013' AND date2 < '09/02/2013' ORDER BY date1 ASC, price ASC
于 2013-08-07T11:06:40.660 回答
0

SELECT * FROM roomsWHERE Date1 AND Date2 UNION SELECT * FROM roomsWHERE date BETWEEN Date1 AND Date2

于 2014-01-17T08:02:53.113 回答