除了将光标写入每行并将其填充到列中之外,如果我需要将每行转置为列,还有其他任何替代方法吗?
TimeSeconds TagID Value
1378700244 A1 3.75
1378700245 A1 30
1378700304 A1 1.2
1378700305 A2 56
1378700344 A2 11
1378700345 A3 0.53
1378700364 A1 4
1378700365 A1 14.5
1378700384 A1 144
1378700384 A4 10
Run Code Online (Sandbox Code Playgroud)
列数不固定.
输出:我刚刚将n/a指定为占位符,该交集中没有数据.
TimeSec A1 A2 A3 A4
1378700244 3.75 n/a n/a n/a
1378700245 30 n/a n/a n/a
1378700304 1.2 n/a n/a n/a
1378700305 n/a 56 n/a n/a
1378700344 n/a 11 n/a n/a
1378700345 n/a n/a 0.53 n/a
1378700364 n/a n/a n/a 4
1378700365 14.5 n/a n/a …Run Code Online (Sandbox Code Playgroud) 我需要在MS SQL中进行以下转置
从:
Day A B
---------
Mon 1 2
Tue 3 4
Wed 5 6
Thu 7 8
Fri 9 0
Run Code Online (Sandbox Code Playgroud)
以下内容:
Value Mon Tue Wed Thu Fri
--------------------------
A 1 3 5 7 9
B 2 4 6 8 0
Run Code Online (Sandbox Code Playgroud)
我知道PIVOT当只有一列(A)时怎么做,但是当有多列要转置时我无法弄清楚怎么做(A,B,...)
要转置的示例代码:
select LEFT(datename(dw,datetime),3) as DateWeek,
sum(ACalls) as A,
Sum(BCalls) as B
from DataTable
group by LEFT(datename(dw,datetime),3)
Run Code Online (Sandbox Code Playgroud)
表结构:
Column DataType
DateTime Datetime
ACalls int
BCalls int
Run Code Online (Sandbox Code Playgroud)
任何帮助都感激不尽.
我已经阅读了几十个解决类似换位问题的解决方案,就像我即将提出的问题一样,但奇怪的是没有一个能够完全反映我的问题.我只是想在一个简单的仪表板类型数据集中将我的行翻转到列.
从各种事务表中提取的数据如下所示:
DatePeriod PeriodNumberOverall Transactions Customers Visits
'Jan 2012' 1 100 50 150
'Feb 2012' 2 200 100 300
'Mar 2012' 3 300 200 600
Run Code Online (Sandbox Code Playgroud)
我希望能够生成以下内容:
Jan 2012 Feb 2012 Mar 2012
Transactions 100 200 300
Customers 50 100 200
Visits 150 300 600
Run Code Online (Sandbox Code Playgroud)
指标将是静态的(交易,客户和访问),但日期周期将是动态的(IE - 随着月份的增加而增加).
再一次,我已经准备好了许多利用pivot,unpivot,存储过程,UNION ALLs等的例子,但没有任何我没有做任何聚合的事情,只是字面上转换整个输出.我还在Visual Studio 2005中使用带有嵌入列表的矩阵找到了一种简单的方法,但我无法将最终输出导出到excel,这是一项要求.任何帮助将不胜感激.
您好我有下表,我想将EcoYear转向顶部,但没有一定的年限,这些年可以随时开始.另外,不同的情况会有不同的起始年份,所以我需要它来填0而不是null.
CaseID EcoYear NetInv NetOil NetGas
38755 2006 123 2154 525
38755 2007 123 2154 525
38755 2008 123 2154 525
38755 2009 123 2154 525
38755 2010 123 2154 525
38755 2011 123 2154 525
38755 2012 123 2154 525
38755 2013 123 2154 525
38755 2014 123 2154 525
38755 2015 123 2154 525
38755 2016 123 2154 525
38755 2017 123 2154 525
38755 2018 123 2154 525
38755 2019 123 2154 525
38755 2020 123 2154 …Run Code Online (Sandbox Code Playgroud) 我有一个表 Machine_Mode_Duration:

我需要一个查询,以便它显示如下:

感谢建议!
我已经搜索了高低,以获得答案,如果它已经回答了,那么道歉!我在SQL 2005中的查询中得到以下结果:
ID
1234
1235
1236
1267
1278
Run Code Online (Sandbox Code Playgroud)
我想要的是
column1|column2|column3|column4|column5
---------------------------------------
1234 |1235 |1236 |1267 |1278
Run Code Online (Sandbox Code Playgroud)
我不能完全理解枢轴操作员,但看起来它会涉及到它.我现在可以使用只有5行,但奖励将是动态的,即可以扩展到x行.
编辑:我最终将每个结果列的值分配给变量,例如
DECLARE @id1 int, @id2 int, @id3 int, @id4 int, @id5 int
SELECT @id1 = column1, @id2 = column2, @id3 = column3, @id4 = column4,
@id5 = column5 FROM [transposed_table]
Run Code Online (Sandbox Code Playgroud) 我有一个如下结果集:
MinID MaxID ColumnName
---------- ------- -------------------
167 34458 AccountManager
174 174 ClientDeliveryDate
184 184 LocalContactEmail
192 34459 ProjectDeveloper
194 194 ServiceType
Run Code Online (Sandbox Code Playgroud)
我想要一个结果集如:
AccountManager ClientDeliveryDate LocalContactEmail ProjectDeveloper ServiceType
-------------- ------------------ ----------------- ---------------- -----------
167 174 184 192 194
34458 174 184 34459 194
Run Code Online (Sandbox Code Playgroud) 我有一个包含几列的表,并且对于每行我想要最大值:
-- Table:
+----+----+----+----+----+
| ID | C1 | C2 | C3 | C4 |
+----+----+----+----+----+
| 1 | 1 | 2 | 3 | 4 |
| 2 | 11 | 10 | 11 | 9 |
| 3 | 3 | 1 | 4 | 1 |
| 4 | 0 | 2 | 1 | 0 |
| 5 | 2 | 7 | 1 | 8 |
+----+----+----+----+----+
-- Desired result:
+----+---------+
| ID | row_max …Run Code Online (Sandbox Code Playgroud) 鉴于:
+-----------+---------------+-------------+-------+
| Name | Item | Year | Value |
+-----------+---------------+-------------+-------+
| Company A | Sales | 2017 | 100 |
| Company A | Sales | 2016 | 100 |
| Company A | Sales | 2015 | 400 |
| Company A | Profit | 2017 | 50 |
| Company A | Profit | 2016 | 50 |
| Company A | Profit | 2015 | 200 |
| Company B | Sales | 2017 | …Run Code Online (Sandbox Code Playgroud)