不同的值将一列与两个表中的其他列值相关联

时间:2017-06-12 18:02:01

标签: sql ms-access join distinct-values

我试图消除由两个表table1和table2组成的Access数据集中的重复行。我想从一个列中检索不同的值,从两个表中检索字段,还要检索重复项和唯一值的其他列的值。

样本数据(非实际数据):

表1:

ID  BOM_PART_NAME  PART FIND NO  POS  LCN  POS_CT   
1       E              0001       1    P0    1
2       A              0002       1    P1    1
3       C              0003       1    P2    1
4       D              0004       1    P3    1
5       F              0005       1    P4    1

表2:

ID  PART-ATA-NO    PART-SN     PART-NAME
1      001                         A
2      002                         B
3      003                         C
4      004          1100           D
5      005          1101           E

表2:

ID PART-ATA-NO PART-SN PART-NAME 1 001 A 2 002 B. 3 003 C. 4 004 1100 D. 5 005 1101 E

我得到的结果(只显示结果集中的主要栏目以保持简短):

ID ... PART找不到POS-PART-ATA-NO PART-SN 1 001 1 001 1369 2 002 1 002 1444 3 003 1 003 1100 3 003 1 003 1101
3 003 1 003 1102 4 003 2 003 1101 4 003 2 003 1102 5 004 1 004 1101 5 004 1 004 1102 期望的结果:

ID PART找不到POS-PART-ATA-NO PART-SN 1 001 1 001 1369 2 002 1 002 1444 3 003 1 003 1100 4 003 2 003 1101
5 003 3 003 1102 6 003 4 003 1103 7 003 5 003 1104 8 004 1 004 1105 9 004 2 004 1106

ID    PART FIND NO       POS       PART-ATA-NO   PART-SN
1        001              1           001          1369
2        002              1           002          1444
3        003              1           003          1100
3        003              1           003          1101  
3        003              1           003          1102
4        003              2           003          1101
4        003              2           003          1102
5        004              1           004          1101
5        004              1           004          1102

期望的结果:

ID    PART FIND NO       POS      PART-ATA-NO     PART-SN
1        001              1           001          1369
2        002              1           002          1444
3        003              1           003          1100
4        003              2           003          1101  
5        003              3           003          1102
6        003              4           003          1103
7        003              5           003          1104
8        004              1           004          1105
9        004              2           004          1106

通过匹配PART FIND NO(和PART-ATA-NO' s),POS应该增加1.SN应该都是唯一的。

我用来加入两个表的查询:

SELECT Table1.*, Table2.[PART-ATA-NO], Table2.[PART-SN]
FROM Table1 INNER JOIN Table2 ON Table1.[PART FIND NO] = Table2.[PART-ATA-NO];

我希望来自[PART-SN]的唯一值的字段是table2。我想从table1中选择[PART-SN]table 2中的所有其他字段,其中应为[PART-SN]的所有不同行返回所有行。 [PART FIND NO][PART-ATA-NO]具有相同的值。有没有办法加入这两个表来获得这个结果?

0 个答案:

没有答案