Tsql 将第一列透视到标题
我有一个相当长的过程,创建一个始终为13行、19列的表变量。我知道每列的名称和每行的第一个变量。问题是,我不知道如何将表格旋转以便于读取到网站。我必须一行一行地构建html表,但是客户端习惯于将月份缩写放在顶部 下面是使用[SELECT*FROM@TEMP]时表格的外观Tsql 将第一列透视到标题,tsql,Tsql,我有一个相当长的过程,创建一个始终为13行、19列的表变量。我知道每列的名称和每行的第一个变量。问题是,我不知道如何将表格旋转以便于读取到网站。我必须一行一行地构建html表,但是客户端习惯于将月份缩写放在顶部 下面是使用[SELECT*FROM@TEMP]时表格的外观 MonthName|Number_Screened|...|Tax_Credits_Earned|...|Year_To_Date_Tax_Credits_Earned ---------+---------------+---
MonthName|Number_Screened|...|Tax_Credits_Earned|...|Year_To_Date_Tax_Credits_Earned
---------+---------------+---+------------------+---+-------------------------------
Jan |159 |...|11030.26 |...|11030.26
Feb |114 |...|6755.83 |...|17786.09
Mar |107 |...|18250.73 |...|36036.82
Apr |149 |...|11825.55 |...|47862.37
May |117 |...|26149.78 |...|74012.15
Jun |146 |...|11907.49 |...|85919.64
Jul |104 |...|NULL |...|85919.64
Aug |NULL |...|NULL |...|85919.64
Sep |NULL |...|NULL |...|85919.64
Oct |NULL |...|NULL |...|85919.64
Nov |NULL |...|NULL |...|85919.64
Dec |NULL |...|NULL |...|85919.64
Total |896 |...|85919.64 |...|85919.64
月份和总数将始终显示,并且始终以该顺序显示,因为临时表是按该顺序构造的,逐行使用循环
这就是我想要它的样子
|Jan |Feb |Mar |...|Total
-------------------------------+--------+--------+--------+---+--------
Number_Screened |159 |114 |107 |...|896
... |... |... |... |...|...
Tax_Credits_Earned |11030.26|6755.83 |18250.73|...|85919.64
... |... |... |... |...|...
Year_To_Date_Tax_Credits_Earned|11030.26|17786.09|36036.82|...|85919.64
我以前从未成功使用过pivot。看起来您想先取消pivot数据,然后再使用pivot 示例
Select *
From (
Select A.MonthName
,B.*
From @Temp A
Cross Apply ( values (1,'Number_Screened' ,[Number_Screened])
,(2,'Tax_Credits_Earned',[Tax_Credits_Earned])
,(3,'Year_To_Date_Tax_Credits_Earned',[Year_To_Date_Tax_Credits_Earned])
) B(Seq,Item,Value)
) src
Pivot (sum(Value) for MonthName in ([Jan],[Feb],[Mar],[Apr],[May],[Jun],[Jul],[Aug],[Sep],[Oct],[Nov],[Dec],[Total]) ) pvt
Order By Seq
返回
是否有办法将交叉申请按申请顺序排列?当我在编号\u筛选后添加未完成的文档时,它显示在编号\u筛选前。我如何在不加数字前缀的情况下执行交叉申请订单?@Kayot当然,我在交叉申请中添加了一个SEQ