我们目前正在使用SQL2005。我有一个SQL表,它将序列号存储在一个列中。因此,10000个序列号意味着10000行。当这些打印在发票上时,由于信息的存储方式,每行打印一个序列号。我们目前在我们的ERP系统中使用内置发票,但如果我可以对连续出版物进行打印,则会更改为SSRS。
如何读取序列号并显示序列号(在视图或sp中),每行 10次 。因此,如果我正在阅读18个连续剧,它将是两行(第一行有10个连续出版物,第二行有8个连续出版物)。如果我正在阅读53个连续剧,那么它将是6行。做到这一点将减少发票打印所需的纸张,大约是目前所需的纸张的十分之一!
只是要清楚......系列文件当前存储并打印如下:
Ser1
Ser2
Ser3
Ser4
Ser5
我希望他们像这样打印:
Ser1 Ser2 Ser3 Ser4 Ser5 Ser6 Ser7 Ser8 Ser9 Ser10
Ser11 Ser12 Ser13 Ser14 Ser15 Ser16....etc
由于
答案 0 :(得分:1)
您可以使用row_number()
为每行指定唯一编号。这允许您group by rn / 10
,为您提供10行的组。
以下是3行而不是10行的示例:
select max(case when rn % 3 = 0 then serialno end) as sn1
, max(case when rn % 3 = 1 then serialno end) as sn2
, max(case when rn % 3 = 2 then serialno end) as sn3
from (
select row_number() over (order by serialno) -1 as rn
, serialno
from @t
) as SubQueryAlias
group by
rn / 3