在线等,SQL Server里怎样将多种规格的数值排列组合并求长度,请见正文详细说明:
step1、如题,有一个订单表A里有一种物料(同一个编号),有多个长度规格(不止三种),这里先拿三种规格来做需求解释:
订单表表A:
A01(物料编号) A02(长度int格式)
-----------------------------------
G1 200
G1 230
G1 450
step2、先单个长度的全列出来,同时再将三种规格排列组合相加求值,最后得到如下7种组合方式,结果如下:
结果表B:
B01(组合方式varchar格式) B02(总长度int格式)
----------------------------------------------
‘200’ 200
’230‘ 230
‘450’ 450
’200+230‘ 430
‘200+450’ 650
’230+450‘ 680
‘200+230+450 ’ 880
大家应该看明白了吧,假如只有一个长度那就只有一种组合,如果两个规格,比如:
A01(物料编号) A02(长度int格式)
-----------------------------------
G1 100
G1 150
那么表B结果如下:
B01(组合方式varchar格式) B02(总长度int格式)
-----------------------------------------------------------
‘100’ 100
’150‘ 150
‘100+150’ 250
’200+230’ 430
同理,如果4种就要4种单个,两两相加,三三相加,四种相加:
A01(物料编号) A02(长度)
-------------------------------------
a a
b b
c c
d d
最终结果表B如下:
B01(组合方式varchar格式) B02(总长度int格式)
-------------------------------------------------------------------
a .....
b
c
d
a+b
a+c
a+d
b+c
b+d
a+b+c
a+b+d
b+c+d
a+b+c+d