SSRS水平显示一列

SSRS display a column horizontaly

我有一个月 table,其中包含月份名称和月份编号。我怎样才能像这样显示我的月份 table(连续 4 个月)?

假设你的数据是这样

CREATE TABLE Table1
    (MonthNum INT, [MonthName] NVARCHAR(20))
;

INSERT INTO Table1
    (MonthNum, [MonthName])
VALUES
    (1, 'January'),
    (2, 'February'),
    (3, 'March'),
    (4, 'April'),
    (5, 'May'),
    (6, 'June'),
    (7, 'July'),
    (8, 'August'),
    (9, 'September'),
    (10, 'October'),
    (11, 'November'),
    (12, 'December')
;

我会尝试在 TSQL 中解决

创建一些列以符合您希望月份名称出现的顺序,我将在此处使用 CTE

;WITH cte(Col1, Col2, Col3, Col4)
AS(
    SELECT 1, 4, 7, 10 UNION ALL
    SELECT 2, 5, 8, 11 UNION ALL
    SELECT 3, 6, 9, 12
)

加入Table个月

;WITH cte(Col1, Col2, Col3, Col4)
AS(
    SELECT 1, 4, 7, 10 UNION ALL
    SELECT 2, 5, 8, 11 UNION ALL
    SELECT 3, 6, 9, 12
)
SELECT
      T1.[MonthName]
    , T2.[MonthName]
    , T3.[MonthName]
    , T4.[MonthName]
FROM 
    cte     X
LEFT JOIN dbo.Table1 T1 ON T1.MonthNum = X.Col1
LEFT JOIN dbo.Table1 T2 ON T2.MonthNum = X.Col2
LEFT JOIN dbo.Table1 T3 ON T3.MonthNum = X.Col3
LEFT JOIN dbo.Table1 T4 ON T4.MonthNum = X.Col4

得到这个

MonthName   MonthName   MonthName   MonthName
January     April       July        October
February    May         August      November
March       June        September   December