我有下表,
sc_title | sc_date | sc_coursecode | sc_courseno | sc_courseyear
------------------------------------------------------------------------------------------
Open Water Diver | 2015-01-08 04:00:00 | ow | 05W | 2015
Open Water Diver | 2015-03-08 04:00:00 | ow | 05Z | 2015
Open Water Diver | 2015-04-08 04:00:00 | ow | 05W | 2015
Open Water Diver | 2015-05-18 04:00:00 | ow | 05W | 2015
Open Water Diver | 2015-05-09 04:00:00 | ow | 05Z | 2015
Open Water Diver | 2015-05-10 04:00:00 | ow | 05W | 2015
Open Water Diver | 2015-05-11 04:00:00 | ow | 05Z | 2015
Open Water Diver | 2015-05-12 04:00:00 | ow | 07W | 2015
Open Water Diver | 2015-05-13 04:00:00 | ow | 05Z | 2015
Open Water Diver | 2015-05-14 04:00:00 | ow | 07W | 2015
Open Water Diver | 2016-05-15 04:00:00 | ow | 07C | 2016
Bubble Maker | 2015-05-16 04:00:00 | ow | 07C | 2015
我需要那些标题(sc_title)就像“开放水域潜水员”并且由3列sc_coursecode,sc_courseno,sc_courseyear区分的行,并且还只选择直接的未来日期行(sc_date)。所以我的意思是这样的,
sc_title | sc_date | sc_coursecode | sc_courseno | sc_courseyear
------------------------------------------------------------------------------------------
Open Water Diver | 2015-05-10 04:00:00 | ow | 05W | 2015
Open Water Diver | 2015-05-09 04:00:00 | ow | 05Z | 2015
Open Water Diver | 2015-05-12 04:00:00 | ow | 07W | 2015
Open Water Diver | 2016-05-15 04:00:00 | ow | 07C | 2016
我编写了以下查询,该查询几乎可以正常工作但不满足我的最终要求。获取包含未来日期(sc_date)的不同行。
SELECT sc_title,sc_date,sc_coursecode,sc_courseno,sc_courseyear
FROM test_course WHERE DATE(sc_date) > DATE(NOW()) AND sc_title LIKE 'Open Water Diver%'
GROUP BY sc_coursecode,sc_courseno,sc_courseyear ORDER BY sc_date ASC
如果有人可以帮助我,那就太棒了。提前致谢
答案 0 :(得分:1)
由于您正在寻找最近的日期,请使用MIN
上的sc_date
选择最早的DATE(NOW())
以上的SELECT
sc_title
, MIN(DATE(sc_date))
, sc_coursecode
, sc_courseno
, sc_courseyear
FROM test_course
WHERE DATE(sc_date) > DATE(NOW())
AND sc_title LIKE 'Open Water Diver%'
GROUP BY sc_coursecode, sc_courseno, sc_courseyear
ORDER BY sc_date ASC
:
sc_title
请注意,由于您没有按LIKE
进行分组,因此当多个不同的标题与sc_title
条件匹配时,您会在相应字段中获得任意匹配。要避免此问题,请将GROUP BY
添加到{{1}}列表。
答案 1 :(得分:0)
Perhapsh之类的东西......(未经测试)
routes.rb