2017-10-05 231 views
-3

我有一个视图,它具有标称代码的余额。更改视图布局 - SQL

我有在每列期间一月至十二月各行上标称码

我想(每月1)改变,使每个标称的代码有12行

我创建查询SQL Server Management Studio - 然后可以将此视图拖入Sage。目前的观点是

SELECT TOP (1000) [AccountNumber] 
    ,[Jan17] 
    ,[Feb17] 
    ,[Mar17] 
    ,[Apr17] 
    ,[May17] 
    ,[Jun17] 
    ,[Jul17] 
    ,[Aug17] 
    ,[Sep17] 
    ,[Oct17] 
    ,[Nov17] 
    ,[Dec17] 
From Sage_200.dbo.NominalBalance                    

我要求每个月有一行为每个名义代码,而不是一行,每个月有自己的专栏。

感谢

+3

请** [编辑] **你的问题,并添加一些[样本数据(http://plaintexttools.github.io/plain-text-table/)和基于该数据的预期输出。 [**格式化文本**](http://stackoverflow.com/help/formatting)请,[**没有屏幕截图**](http://meta.stackoverflow.com/questions/285551/why-may -i-不上传图像-的代码上那么当灰化-A-问题/ 285557#285557)。 ** [**]您的问题 - 请勿**在论坛中发布代码或其他信息。 –

回答

0

下面是根据你的问题的逆透视看起来是这样的一个很好的链接SQL Server : Columns to Rows

USE SANDBOX 
DROP TABLE T 
CREATE TABLE T(CDE INT,JAN INT,FEB INT,MAR INT,APR INT,MAY INT,JUN INT,JUL INT,AUG INT,SEP INT,OCT INT,NOV INT,DEC INT) 
GO 

TRUNCATE TABLE T 
INSERT INTO T VALUES (111,1,2,3,4,5,6,7,8,9,10,11,12),(222,13,14,15,16,17,18,19,20,21,22,23,24) 

SELECT CDE,MTH,VALUE 
FROM T 
UNPIVOT (VALUE FOR MTH IN (JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC)) UPVT 

结果

CDE    VALUE 
----------- ---- ----------- 
111   JAN 1 
111   FEB 2 
111   MAR 3 
111   APR 4 
111   MAY 5 
111   JUN 6 
111   JUL 7 
111   AUG 8 
111   SEP 9 
111   OCT 10 
111   NOV 11 
111   DEC 12 
222   JAN 13 
222   FEB 14 
222   MAR 15 
222   APR 16 
222   MAY 17 
222   JUN 18 
222   JUL 19 
222   AUG 20 
222   SEP 21 
222   OCT 22 
222   NOV 23 
222   DEC 24 

(24 row(s) affected) 
+0

非常感谢你:) –