gpt4 book ai didi

SQL 选择具有最大和最小日期的行

转载 作者:行者123 更新时间:2023-12-04 21:31:21 24 4
gpt4 key购买 nike

我试图一次从表格中获取 2 行。具有最小日期时间(今天 - 7)的上周和最新的(今天)。
我的表:

|id  |dataIn |dataOut|date                   |MachineId                            |
-----+-------+-------+-----------------------+-------------------------------------+
|1 |5006 |58 |2011-10-25 09:03:17.000|7B788EE88E-6527-4CB4-AA4D-01B7F4048559
|2 |1200 |130 |2011-10-26 12:45:43.000|7B788EE88E-6527-4CB4-AA4D-01B7F4048559
...
|124 |1350 |480 |2011-10-29 13:29:04.000|7B788EE88E-6527-4CB4-AA4D-01B7F4048559
|125 |8005 |560 |2011-10-31 21:18:35.000|7B788EE88E-6527-4CB4-AA4D-01B7F4048559

我可以选择上周的数据:

SELECT 
dbo.myDatabase.Date AS [date], dbo.myDatabase.dataIn AS [in],
dbo.myDatabase.dataOut AS [out]
FROM
dbo.myDatabase WHERE
Date >=dateadd(day,datediff(day,0,GetDate())- 7,0)
AND
dbo.myDatabase.MachineId = '7B788EE88E-6527-4CB4-AA4D-01B7F4048559'

但我只想要第 1 行和第 125 行,因为这些是用于我的计算的行。
所以我的问题是:
如何从上一个查询的结果中选择 2 行(带有 MIN 和 MAX 日期)?

最佳答案

你可以使用这个:

select * from dbo.myDatabase 
where
([Date] = (select max([Date]) from /* your query */ ) or
[Date] = (select min([Date]) from /* your query */ ))
and MachineId = '7B788EE88E-6527-4CB4-AA4D-01B7F4048559' -- or any other id

编辑:因为完全有可能两台机器具有相同的 date值,应更新查询以还包括 MachineId where 中的过滤器条款。我更新了查询以显示这一点。

关于SQL 选择具有最大和最小日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7967010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com