sql 根据年份月份查询数据

Posted 雪中狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 根据年份月份查询数据相关的知识,希望对你有一定的参考价值。

CREATE TABLE [dbo].[T_UserAccess](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [UserId] [int] NULL,
    [UserType] [int] NULL,
    [OpenId] [nvarchar](50) NULL,
    [UnionId] [nvarchar](50) NULL,
    [CreationTime] [datetime] NULL,
    [AppId] [int] NULL,
 CONSTRAINT [PK_T_UserAccess] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

sql 根据年份、月份查询数据

SELECT ISNULL(NEWID(), d1e57ca7-6eee-495a-be13-73d5e7d51f36) AS Id,
       userAccess.Year,
       Sum(January) January,
       Sum(February) February,
       Sum(March) March,
       Sum(April) April,
       Sum(May) May,
       Sum(June) June,
       Sum(July) July,
       Sum(August) August,
       Sum(September) September,
       Sum(October) October,
       Sum(November) November,
       Sum(December) December
FROM
  ( SELECT years AS Year,
           CASE
               WHEN months=1 THEN counts
               ELSE 0
           END January,
           CASE
                WHEN months=2 THEN counts
                ELSE 0
            END February,
                CASE
                WHEN months=3 THEN counts
                ELSE 0
                END March,
            CASE
                WHEN months=4 THEN counts
                ELSE 0
                END April,
                CASE
                WHEN months=5 THEN counts
                ELSE 0
                END May,
            CASE
                WHEN months=6 THEN counts
                ELSE 0
                END June,
            CASE
                WHEN months=7 THEN counts
                ELSE 0
                END July,
            CASE
                WHEN months=8 THEN counts
                ELSE 0
                END August,
            CASE
                WHEN months=9 THEN counts
                ELSE 0
                END September,
            CASE
                WHEN months=10 THEN counts
                ELSE 0
                END October,
            CASE
                WHEN months=11 THEN counts
                ELSE 0
                END November,
            CASE
                WHEN months=12 THEN counts
                ELSE 0
                END December
   FROM
     (SELECT datepart(yy,CreationTime) AS years,
             datepart(mm,CreationTime) months,
                                       count(1)AS counts
      FROM [T_UserAccess]
      GROUP BY year(CreationTime),
               month(CreationTime))AS ua ) AS userAccess
GROUP BY Year

 

以上是关于sql 根据年份月份查询数据的主要内容,如果未能解决你的问题,请参考以下文章

在MySql中、怎样根据年份或者月份查询数据表中的数据?

SQL查询以获取特定年份的当前日期(考虑月份和日期)的数据

SQL Select 查询以选择日期之间的数据,其中从日期月份高于日期月份和年份差异>1

在 SQL 中为给定年份设置硬编码的日期和月份

月份和年份的 SQL 查询

根据月份和年份订购交叉选项卡查询