我想创建一个报告,显示可变数量的图像,即2或3或4等。我有一个数据集,它返回每个图像的路径,参见示例。
选择路径FROM照片
回报:
“C:\照片\ PHOTO1.JPG
“C:\照片\ photo2.jpg
“C:\照片\ photo3.jpg
“C:\照片\ photo4.jpg
另一个数据集可以返回:
“C:\照片\ photo7.jpg
“C:\照片\ photo8.jpg
“C:\照片\ photo9.jpg
我希望报告看起来像:
例如1我希望报告中有3张图片,然后是第二行的另一张图片
例如,我只想在报告中找到3张图片。
我尝试过使用表格和tablix,但无法使用它。任何想法?
答案 0 :(得分: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
答案 1 :(得分:0)
我使用矩阵报告
在列中使用4行不同数量的图像选择ImageLink, ImageRowNumber, ROW_NUMBER()OVER(由ImageLink分割ImageRowNumber ORDER)ImageColumns
这 ( SELECT ImageLink, NTILE(4)OVER(由ImageLink ORDER BY ImageLink分割)AS ImageRowNumber FROM {Table} WITH(NOLOCK) )X