------------------------- | ID | RID | DATE | // TABLE A ------------------------- | 1 | 1 | 2015-01-01 | // 1st edition | 2 | 2 | 2015-01-01 | // 1st edition | 3 | 1 | 2015-02-01 | // 2nd edition | 4 | 4 | 2015-01-01 | // 1st edition | 5 | 1 | 2015-05-01 | // 3rd edition | 6 | 6 | 2015-01-01 | // 1st edition | 7 | 6 | 2015-01-10 | // 3rd edition | 8 | 6 | 2015-01-12 | // 4th edition | 9 | 6 | 2015-01-02 | // 2nd edition -------------------------
表 A 由描述“文件版本”的记录组成。至今, 我已经能够生成一个 SELECT 语句来选择 最新版本:
SELECT `t1`.`id` AS `id`, `t1`.`rid` AS `rid`, `t1`.`date` AS `date`
FROM `table_a` `t1`
WHERE (`t1`.`date` = (
SELECT MAX(`t2`.`date`)
FROM `table_a` `t2`
WHERE (`t2`.`rid` = `t1`.`rid`)
))
这给了我这样的东西:
------------------------- | ID | RID | DATE | // TABLE B ------------------------- | 2 | 2 | 2015-01-01 | // 1st edition | 4 | 4 | 2015-01-01 | // 1st edition | 5 | 1 | 2015-05-01 | // 3rd edition | 8 | 6 | 2015-01-12 | // 4th edition -------------------------
但我的问题是,如何调整 SELECT 语句以便获得特定日期的所有最新版本?例如,说我 想找到截至 2015 年 1 月 11 日的最新版本?我想得到类似于表 C 的结果:
------------------------- | ID | RID | DATE | // TABLE C ------------------------- | 1 | 1 | 2015-01-01 | // 1st edition | 2 | 2 | 2015-01-01 | // 1st edition | 4 | 4 | 2015-01-01 | // 1st edition | 7 | 6 | 2015-01-10 | // 3rd edition -------------------------
如果已经有解决方案,我提前表示歉意,但我已经尝试使用这些关键字/短语进行搜索:“mysql select latest edition as of date”并且到目前为止发现的帮助很少......
我也意识到我可能想得太多了,它可能是一个非常简单的调整,比如修改 SELECT MAX 或向第二个 WHERE 子句添加另一个条件。
谢谢
更新:感谢 Musa,我需要逐步考虑;一种不同的方法。第一步需要选择所有日期 <= 2015-01-11。第二步是过滤掉="" id="RID" 的="" max(date)(即最新版本)。至于将两个="" select="">=>
最佳答案
我认为你可以这样做:
SELECT
`t1`.`id` AS `id`,
`t1`.`rid` AS `rid`,
`t1`.`date` AS `date`
FROM `table_a` `t1`
WHERE
`t1`.`date` = (
SELECT MAX(`t2`.`date`)
FROM `table_a` `t2`
WHERE (`t2`.`rid` = `t1`.`rid`)
)
and `t1`.`date` <= '2015-01-11' # I have added this line
您希望最新版本小于或等于另一个日期(此处为 2015-01-11),因此我认为您可以通过在 中添加和 子句。您的查询的其余部分是相同的。 AND 部分来获取它WHERE
关于mysql - 选择特定日期的最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33978288/
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
状态:我正在构建一个应用程序,其中需要一个可供用户选择颜色的字段,该字段将包含RGB颜色代码字符串。我已经测试了一个看起来很漂亮但效果不佳的。它是“挑剔的颜色”,并托管在此存储库中:https://github.com/Astorsoft/picky-color.在这里我打开一个关于它的一些问题的问题。问题:请建议我在Rails3应用程序中使用一些颜色选择器。 最佳答案 也许页面上的列表jQueryUIDevelopment:ColorPicker为您提供开箱即用的产品。原因是jQuery现在包含在Rails3应用程序中,因此使用基