【发布时间】:2016-09-12 15:34:58
【问题描述】:
我有一个数据库,在这个数据库中我有一个名为“Bakery”的表。在这个表中有两列,食物和时间。第一列 Food 代表生产的食物,然后第二列 Time 代表制作食物的时间。
示例
FOOD TIME
Cookie 5:00 AM
Cookie 5:10 AM
Cookie 5:18 AM
Cookie 5:30 AM
如果我想创建一个 SQL 命令来查看最后一批食物的制作时间以及客户购买食物的时间,那么最好的方法是什么。
例子
约翰在早上 5 点 17 分买了一块饼干,最后一批为约翰制作的饼干是什么时候?
我希望结果返回凌晨 5:10。
我有数百个名字和不同的食物,那么最好的方法是什么?
【问题讨论】:
-
您肯定不需要使用任何循环、if 语句或时间递减。您使用的是什么 DBMS(SQL Server、MySQL、Oracle 等)?
-
你需要
MAX时间在那些小于“约翰”时间的人中)。 -
只需按日期时间降序排序,然后选择日期时间
-
您的查询应该是这样的(对于 DBMS,查询可能会有所不同):
SELECT MAX(TIME) FROM Bakery WHERE TIME < @InputTime
标签: sql function if-statement while-loop