表1
BLU RepN表2
01 08 434
01 04 477
07 12 519
07 11 549
08 11 560
04 11 568
01 07 581
04 12 598
01 06 601
10 11 609
06 10 625
02 03 634
06 08 646
03 08 652
08 12 654
03 04 665
01 12 666
06 07 672
08 10 673
02 07 697
04 07 707
03 07 719
02 04 745
02 11 766
11 12 774
03 12 833
02 10 838
01 11 849
06 12 851
01 02 851
10 12 875
04 10 883
09 11 886
04 08 894
02 12 897
05 11 930
01 09 949
07 08 963
BLU1 RepN1表3
01 133955
02 147485
03 153295
04 166689
05 188967
06 138090
07 107990
08 60633
09 68339
10 26799
11 14902
BLU2 RepN2表4
02 5655
03 25026
04 29502
05 89886
06 71380
07 109676
08 132257
09 201662
10 245659
11 140627
12 155814
bulT RepNT
1 133955
2 153140
11 155529
12 155814
3 178321
8 192890
4 196191
6 209470
7 217666
9 270001
10 272458
5 278853
想合并得到 表4 如下所示
id BLU RepN BLU1 RepN1 BLU2 RepN2 bulT RepNT
1 01 08 434 1 133955 2 5655 1 133955
2 01 04 477 2 147485 3 25026 2 153140
3 07 12 519 3 153295 4 29502 11 155529
4 07 11 549 4 166689 5 89886 12 155814
5 08 11 560 5 188967 6 71380 3 178321
6 04 11 568 6 138090 7 109676 8 192890
7 01 07 581 7 107990 8 132257 4 196191
8 04 12 598 8 60633 9 201662 6 209470
9 01 06 601 9 68339 10 245659 7 217666
10 10 11 609 10 26799 11 140627 9 270001
11 06 10 625 11 14902 12 155814 10 272458
12 02 03 634 5 278853
13 06 08 646
14 03 08 652
15 08 12 654
16 03 04 665
17 01 12 666
18 06 07 672
19 08 10 673
20 02 07 697
21 04 07 707
22 03 07 719
23 02 04 745
24 02 11 766
25 11 12 774
26 03 12 833
27 02 10 838
28 01 11 849
29 06 12 851
30 01 02 851
31 10 12 875
32 04 10 883
33 09 11 886
34 04 08 894
35 02 12 897
36 05 11 930
37 01 09 949
38 07 08 963
用SQL如何完成多个数据表合并,谢谢
------解决方案--------------------
select
id=row_number()over(order by (select 1)),
a.*,b.BLU1,b.RepN1,c.BLU2,c.RepN2,bulT,RepNT
from a left join b on CHARINDEX(a.BLU+' ',b.BLU1+' ')>0
left join c on CHARINDEX(a.BLU+' ',c.BLU1+' ')>0
left join d on d.RepNT=b.RepN1 or d.RepNT=c.RepN2