栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

T-SQL选择查询

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

T-SQL选择查询

这是一种使用方便的存储过程的简便方法,该存储过程称为pivot_query(代码在此处,示例在此处)。这样,您可以使用开始日期和结束日期条件首先限制要进行数据透视的数据,从而限制在数据透视之后获得的列。

该fn_MonthRange()函数是一个递归CTE提供日期的表相隔一个月的开始和结束日期,然后您可以OUTER连接到你的数据之间。那将填补任何缺失的月份。

(fn_DateRange()类似,但适用于任意时间段,例如“每15分钟”,每小时,每3天等。)

    create table #testdata       (       id          integer,       Title       varchar(20),       TheDate     datetime,       metadata    varchar(20)       )    go    insert into #testdata values(1,'A','08/01/2010','M1')    insert into #testdata values(1,'A','10/05/2010','M2')    insert into #testdata values(1,'A','03/15/2011','M3')    insert into #testdata values(2,'B','09/20/2010','M1')    insert into #testdata values(2,'B','01/15/2011','M2')    insert into #testdata values(3,'C','12/15/2010','M1')    go    declare @mySQL       varchar(MAX);    declare @StartDate   varchar(20);    declare @EndDate     varchar(20);    set @StartDate = '08/01/2010';    set @EndDate   = '03/15/2011';    set @mySQL = '    select       id,       Title,       Left(Datename(month, TheDate),3) + ''-'' + right(cast(Year(theDate) as varchar(4)),2) monyr,       metadata    from   dbo.fn_MonthRange( ''' + @StartDate + ''',''' + @EndDate + ''') dr   LEFT OUTER JOIN #testdata td      on (td.TheDate between dr.startdate and dr.enddate )where   dr.StartDate between ''' + @StartDate + ''' and ''' + @EndDate + '''';    exec pivot_query @mySQL, 'Title', 'monyr','max(metadata)'    go    Result:Title     Aug-10    Dec-10    Feb-11    Jan-11    Mar-11    Nov-10    Oct-10    Sep-10    -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- A         M1        NULL      NULL      NULL      M3        NULL      M2        NULL      B         NULL      NULL      NULL      M2        NULL      NULL      NULL      M1        C         NULL      M1        NULL      NULL      NULL      NULL      NULL      NULL      None      NULL      NULL      None      NULL      NULL      None      NULL      NULL


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/390473.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号