gpt4 book ai didi

c# - sql server 从匹配的日期时间中选择最小值

转载 作者:行者123 更新时间:2023-11-30 16:26:34 24 4
gpt4 key购买 nike

SELECT Id, Value, Sender, Recipient, MIN(DateTime), TypeOf, VideoId, Likes, Comments
FROM xx.dbo.StreamView
WHERE StreamView.TypeOf = 3 AND StreamView.[DateTime] >= "Some DateTime Value Here"

我正在尝试直接获取比给定的 DateTime 值更新的最新记录。

执行此查询时,我收到以下错误:

Msg 207, Level 16, State 1, Line 1
Invalid column name 'Some DateTime Value Here'.

此外,当删除此行 AND St​​reamView.[DateTime] >= "Some DateTime Value Here"

我得到:

消息 8120,级别 16,状态 1,第 1 行列“xx.dbo.StreamView.Id”在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。

建议?谢谢。

更新

WITH
sequenced_records AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY [DateTime] DESC) AS sequence_id,
*
FROM
xx.dbo.StreamView
WHERE
StreamView.TypeOf = 3
AND StreamView.[DateTime] >= "2011-12-29 01:38:21.607"
)
SELECT
*
FROM
sequenced_records
WHERE
sequence_id = 1

返回 -> 消息 207,级别 16,状态 1,第 11 行列名称“2011-12-29 01:38:21.607”无效。

更新2

伙计们,我只需要返回一组选定项目中大于给定日期时间的最小日期时间的 SINGLE 记录。

最佳答案

如果您要使用像 MIN() 这样的聚合函数,您必须使用 GROUP BY 子句对非聚合列进行分组。

参见 http://msdn.microsoft.com/en-us/library/ms177673.aspx

您还需要将 "Some DateTime Value Here" 中的双引号替换为单引号。

试试这个代码:

SELECT 
Id,
Value,
Sender,
Recipient,
MIN([DateTime]),
TypeOf,
VideoId,
Likes,
Comments
FROM xx.dbo.StreamView

WHERE StreamView.TypeOf = 3 AND StreamView.[DateTime] >= '1/1/2012'

GROUP BY
Id,
Value,
Sender,
Recipient,
TypeOf,
VideoId,
Likes,
Comments

根据更新后的问题:

DECLARE @Date DATETIME = (
SELECT MIN( [DateTime] ) FROM xx.dbo.StreamView WHERE TypeOf = 3
AND [DateTime] >= '1/1/2012'
);

SELECT TOP 1 * FROM xx.dbo.StreamView WHERE [DateTime] >= @Date;

关于c# - sql server 从匹配的日期时间中选择最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696254/

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