--将同一个表中 不同[Group]属性的添加列分成一整行
SELECT * INTO VP_Temp FROM
(
SELECT DISTINCT A.ID,A.TypeName,A.ItemType,A.isBad,
A.sNo sNo1,A.CheckItem CheckItem1,A.BadValue BadValue1,A.[Group] Group1,
B.sNo sNo2,B.CheckItem CheckItem2,B.BadValue BadValue2,B.[Group] Group2,
C.sNo sNo3,C.CheckItem CheckItem3,C.BadValue BadValue3,C.[Group] Group3,
D.sNo sNo4,D.CheckItem CheckItem4,D.BadValue BadValue4,D.[Group] Group4
FROM
(SELECT ROW_NUMBER() over(Order by sNo ASC) ID,* FROM Print_Temp WHERE [Group]=1) A
LEFT OUTER JOIN
(SELECT ROW_NUMBER() over(Order by sNo ASC) ID,* FROM Print_Temp WHERE [Group]=2) B
ON A.ID=B.ID AND A.TypeName=B.TypeName AND A.ItemType=B.ItemType AND A.isBad=B.isBad
LEFT OUTER JOIN
(SELECT ROW_NUMBER() over(Order by sNo ASC) ID,* FROM Print_Temp WHERE [Group]=3) C
ON B.ID=C.ID AND B.TypeName=C.TypeName AND B.ItemType=C.ItemType AND B.isBad=C.isBad
LEFT OUTER JOIN
(SELECT ROW_NUMBER() over(Order by sNo ASC) ID,* FROM Print_Temp WHERE [Group]=4) D
ON C.ID=D.ID AND C.TypeName=D.TypeName AND C.ItemType=D.ItemType AND C.isBad=D.isBad
)TAB
--每四个一组
序号 值 组属性
1 妲己 1
2 后羿 2
3 鲁班 3
4 狄仁杰 4
5 甄姬 1
6 安琪拉 2
7 亚瑟 3
8 小乔 4
9 周瑜 1
10 孙尚香 2
--先补足相同的数量 利用存储过程
序号 值 组属性
1 妲己 1
2 后羿 2
3 鲁班 3
4 狄仁杰 4
5 甄姬 1
6 安琪拉 2
7 亚瑟 3
8 小乔 4
9 周瑜 1
10 孙尚香 2
11 null 3 --能被4整除的
12 null 4 --能被4整除的
然后变成
--其中rn为rownumber()
rn 序号 值 组属性 序号 值 组属性 序号 值 组属性 序号 值 组属性
1