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

SQL数据透视表动态

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

SQL数据透视表动态

在这里,您将选择一列中的值以在数据透视图中显示为一列

DECLARE @cols NVARCHAr (MAX)SELECt @cols = COALESCE (@cols + ',[' + AvJT + ']', '[' + AvJT + ']')    FROM    (SELECt DISTINCT AvJT FROM YourTable) PV      ORDER BY AvJT

现在旋转查询

DECLARE @query NVARCHAr(MAX)SET @query = 'SELECt * FROM   (      SELECt date_1, StartHour,AvJT, data_source       FROM YourTable  ) x  PIVOT   (      -- Values in each dynamic column      SUM(data_source)      FOR AvJT IN (' + @cols + ') ) p;'EXEC SP_EXECUTESQL @query
  • 点击这里查看结果

如果要对列名称不是动态的地方执行此操作,则可以执行以下查询

SELECt DATE_1,STARTHOUR,MIN(CASE WHEN AvJT='00001a' THEN data_source END) [00001a],MIN(CASE WHEN AvJT='00002a' THEN data_source END) [00002a],MIN(CASE WHEN AvJT='00003a' THEN data_source END) [00003a],MIN(CASE WHEN AvJT='00004a' THEN data_source END) [00004a]FROM YOURTABLEGROUP BY  DATE_1,STARTHOUR
  • 点击这里查看结果

编辑 :

我正在为您更新的问题进行更新。

声明一个变量进行过滤

data_source

DECLARE @DATASOURCE VARCHAr(20) = '1'

代替

QUOTENAME
,您可以使用另一种格式来获取数据透视表的列

DECLARE @cols NVARCHAr (MAX)SELECt @cols = COALESCE (@cols + ',[' + link_ID + ']', '[' + link_ID + ']')    FROM    (SELECt DISTINCT link_ID FROM C1_May_Routes WHERe data_source=@DATASOURCE) PV      ORDER BY link_ID

现在枢纽

DECLARE @query NVARCHAr(MAX)SET @query = 'SELECt * FROM   (      -- We will select the data that has to be shown for pivoting      -- with filtered data_source      SELECT date_1, StartHour,AvJT, link_ID      FROM C1_May_Routes      WHERe data_source = '+@DATASOURCE+'  ) x  PIVOT   (      -- Values in each dynamic column      SUM(AvJT)      -- Select columns from @cols       FOR link_ID IN (' + @cols + ') ) p;'EXEC SP_EXECUTESQL @query
  • 点击这里查看结果


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

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

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