Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 按月份和年份分组以获得不同的月份和年份,然后合并为单个日期SQL_Sql Server - Fatal编程技术网

Sql server 按月份和年份分组以获得不同的月份和年份,然后合并为单个日期SQL

Sql server 按月份和年份分组以获得不同的月份和年份,然后合并为单个日期SQL,sql-server,Sql Server,有没有更好的方法通过一个查询来实现这一点 查询应返回表中唯一的月份和年份,但作为组合日期。对于此类问题,示例数据确实是必要的,但此函数也可以为您提供帮助 SELECT CONVERT(DATE,CAST([Year] AS VARCHAR(4))+'-'+ CAST([Month] AS VARCHAR(2))+'-'+ CAST('1' AS VARCHAR(2))) Date FROM (SELECT YEAR

有没有更好的方法通过一个查询来实现这一点


查询应返回表中唯一的月份和年份,但作为组合日期。

对于此类问题,示例数据确实是必要的,但此函数也可以为您提供帮助

SELECT CONVERT(DATE,CAST([Year] AS VARCHAR(4))+'-'+
                    CAST([Month] AS VARCHAR(2))+'-'+
                    CAST('1' AS VARCHAR(2))) Date 
FROM (SELECT YEAR(Date) as [Year], MONTH(Date) as [Month] FROM [dbo].[Data] 
GROUP BY YEAR(Date), MONTH(Date)) x
                    ORDER BY Date DESC

对于这类问题,示例数据确实是必要的,但此函数也可以为您提供帮助


此代码接受您输入的任何日期,并将其计算为当月的第一个日期。有效地只看月份和年份:

SELECT 
  DATEFROMPARTS([Year], [Month], 01)
FROM 
(
  SELECT 
    YEAR(Date) as [Year], 
    MONTH(Date) as [Month] 
  FROM [dbo].[Data] 
  GROUP BY YEAR(Date), MONTH(Date)
) x
ORDER BY Date DESC

此代码接受您输入的任何日期,并将其计算为当月的第一个日期。有效地只看月份和年份:

SELECT 
  DATEFROMPARTS([Year], [Month], 01)
FROM 
(
  SELECT 
    YEAR(Date) as [Year], 
    MONTH(Date) as [Month] 
  FROM [dbo].[Data] 
  GROUP BY YEAR(Date), MONTH(Date)
) x
ORDER BY Date DESC

您应该发布表的一些示例数据和所需的结果请标记您的sql server版本您应该发布表的一些示例数据和所需的结果请标记您的sql server版本
SELECT
    DATEADD(MM,DATEDIFF(MM,0, [Date] ),0) AS [YearMonth]
FROM [dbo].[Data]
ORDER BY
    DATEADD(MM,DATEDIFF(MM,0, [Date] ),0)
;