2011-08-12 21 views
2

我想創建一個報告,顯示可變數量的圖像,即2或3或4等等。我有一個數據集,返回這些圖像中的每一個的路徑,請參閱示例。在SSRS中顯示可變數量的圖像

選擇路徑從照片中
回報:
'C:\照片\ PHOTO1.JPG
' C:\照片\ photo2.jpg
'C:\照片\ photo3.jpg
' C: \照片\ photo4.jpg

其他數據集可能會返回:
'C:\照片\ photo7.jpg
' C:\照片\ photo8.jpg
「C:\照片\ photo9.jpg

我想要什麼的報告看起來像:

比如1我想在整個報告3張照片,然後又在第二行

例如2我只是想在3張圖片報告。

我嘗試過使用表和tablix,無法讓它正常工作。有任何想法嗎?

回答

2

從三個字段中獲取數據庫中的路徑。然後將這些字段放在表格的三列中。

查詢的想法是獲取第1列中的第1,第4,第7 ...路徑,第2列中的第2,第5,第8 ...路徑以及第3,第6,第9 ...路徑在第3列中。

使用How to select the nth row in a SQL database table?對路徑進行編號,並使用具有自連接的模3函數來創建三列。

create table #photo 
(
    Path varchar(100) 
) 
go 

insert into #photo values ('Path1') 
insert into #photo values ('Path2') 
insert into #photo values ('Path3') 
insert into #photo values ('Path4') 
insert into #photo values ('Path5') 
insert into #photo values ('Path6') 
insert into #photo values ('Path7') 
insert into #photo values ('Path8') 

go 

WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY Path)-1 AS RowNumber, Path 
FROM #photo) 
SELECT Ord1.Path as Col1Path, Ord2.Path as Col2Path, ord3.Path as Col3Path 
FROM Ordered Ord1 
left outer join 
Ordered Ord2 
on Ord1.RowNumber = Ord2.RowNumber - 1 
left outer join 
Ordered Ord3 
on Ord3.RowNumber = Ord2.RowNumber + 1 
where Ord1.RowNumber % 3 = 0 


drop table #photo 

This is the report

0

我使用由ImageRowNumber ORDER OVER(PARTITION矩陣報告

SELECT ImageLink的, ImageRowNumber, ROW_NUMBER()使用該有4行的不同量的圖像的列BY ImageLink)ImageColumns

FROM ( SELECT ImageLink, NTILE( 4)OVER(通過ImageLink ORDER BY ImageLink分區)AS ImageRowNumber FROM {Table} WITH(NOLOCK) )x