Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何使用selectdatepart_Sql Server 2008_Datetime - Fatal编程技术网

Sql server 2008 如何使用selectdatepart

Sql server 2008 如何使用selectdatepart,sql-server-2008,datetime,Sql Server 2008,Datetime,我有这样一个SQL查询 SELECT TOP 1 ROW_NUMBER() OVER (ORDER BY column_date DESC) AS ROWID, * FROM table_report WHERE column_date = datepart(year,date) 如果我错了,请改正。我想从datetime开始计算年份,然后按年份选择前1行编号您可以通过向窗口功能添加分区来选择每年的第一行(按照您提供的顺序),然后仅对每年的第一行进行筛选: S

我有这样一个SQL查询

SELECT TOP 1 
    ROW_NUMBER() OVER (ORDER BY column_date DESC) AS ROWID, * 
FROM 
    table_report 
WHERE 
    column_date = datepart(year,date)

如果我错了,请改正。我想从datetime开始计算年份,然后按年份选择前1行编号

您可以通过向窗口功能添加分区来选择每年的第一行(按照您提供的顺序),然后仅对每年的第一行进行筛选:

SELECT * FROM
(
    SELECT ROW_NUMBER() OVER 
     (PARTITION BY datepart(year,date) ORDER BY column_date DESC) AS ROWID,
     * 
    FROM table_report 
) X
WHERE ROWID = 1;

前1行编号()超过(按日期部分(年,列日期)描述的订单)作为行ID。。。。。。。其中datepart(year,column_date)=datepart(year,date)未正确运行。当我尝试时,在“datepart”附近显示错误消息不正确的语法非常感谢。我能解决我的问题