-1
我有一個表格,並且我想以兩種格式輸出記錄。如何將表格行轉換爲特定組格式
在第一個輸出中,我希望表格行顯示爲左側和右側組,您可以在圖像中看到。 並在第二個輸出中我想要將行作爲一個左側和一個右側。
我正在使用SQL Server。
我曾嘗試與支點,但沒有成功。
我有一個表格,並且我想以兩種格式輸出記錄。如何將表格行轉換爲特定組格式
在第一個輸出中,我希望表格行顯示爲左側和右側組,您可以在圖像中看到。 並在第二個輸出中我想要將行作爲一個左側和一個右側。
我正在使用SQL Server。
我曾嘗試與支點,但沒有成功。
如果你不得不做這樣的事情在T-SQL,這是做的一種方式......
----------------------------
-- Display 1
----------------------------
DECLARE @ColBreak INT = 5
;WITH MyTable (SrNo, ItemNo, Qty) AS
(
SELECT 1, 'A1', 150 UNION ALL
SELECT 2, 'A2', 100 UNION ALL
SELECT 3, 'A3', 300 UNION ALL
SELECT 4, 'A4', 150 UNION ALL
SELECT 5, 'A5', 100 UNION ALL
SELECT 6, 'A6', 300 UNION ALL
SELECT 7, 'A7', 150 UNION ALL
SELECT 8, 'A8', 100 UNION ALL
SELECT 9, 'A9', 300 UNION ALL
SELECT 10, 'A10', 150
)
,Column1 AS
(
SELECT *
FROM MyTable T1
WHERE SrNo <= @ColBreak
)
,Column2 AS
(
SELECT *
FROM MyTable T1
WHERE SrNo > @ColBreak
)
SELECT *
FROM Column1 T1
JOIN Column2 T2 ON T1.SrNo + @ColBreak = T2.SrNo
----------------------------
-- Display 2
----------------------------
;WITH MyTable (SrNo, ItemNo, Qty) AS
(
SELECT 1, 'A1', 150 UNION ALL
SELECT 2, 'A2', 100 UNION ALL
SELECT 3, 'A3', 300 UNION ALL
SELECT 4, 'A4', 150 UNION ALL
SELECT 5, 'A5', 100 UNION ALL
SELECT 6, 'A6', 300 UNION ALL
SELECT 7, 'A7', 150 UNION ALL
SELECT 8, 'A8', 100 UNION ALL
SELECT 9, 'A9', 300 UNION ALL
SELECT 10, 'A10', 150
)
SELECT *
FROM MyTable T1
JOIN MyTable T2 ON T1.SrNo + 1 = T2.SrNo
WHERE T1.SrNo % 2 != 0
它的作品Rockinly ....謝謝@MarkD –
這是不是你應該在'T-SQL'做。這是你的報告層應該處理的事情。 'T-SQL'這樣做需要不自然的'JOINs',並且結果不能在SSMS中分頁。 – MarkD
有關實現輸出1的一些幫助,可以查看['NTILE()'](http://msdn.microsoft.com/zh-cn/library/ms175126.aspx「NTILE(Transact-SQL)」 )。 –
@MarkD分頁不是現在進出口 - wt我想要的是5-5記錄,左 - 右... –