【发布时间】:2017-11-11 23:48:39
【问题描述】:
我正在尝试从由两个表组成的 Access 数据集中消除重复行。我想从两个表的一列中检索不同的值,同时也检索其他列的重复值和唯一值。
我想要唯一值的字段是 table2 中的 [PART-SN]。我想从表 1 中选择所有其他字段,并从表 2 中选择 [PART-SN],其中所有行都应为 [PART-SN] 的所有不同行返回。 [PART FIND NO] 和 [PART-ATA-NO] 具有相同的值并具有重复项。我看过有关如何从同一列的两个表中获取值的帖子。有没有办法连接这两个表来得到这个结果?
样本数据(非实际数据):
表 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
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
我得到了什么:
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] UNIQUE 列、PRIMARY KEY 列、FOREIGN KEY 列还是什么?另外,您是否提出了一些尚未完成的解决方案或解决方案的一部分?这会很有帮助,因为我真的很想了解你想做什么!
-
您应该发布您的数据结构以及到目前为止您尝试过的内容。
-
它们可能是外键值,因为两列是等效值。
-
现在两个表中的PK只是ID(访问默认)。
-
我最初运行的查询是为了合并两个表:SELECT table1.ID, TABLE1.BOM_PART_NAME, TABLE1.CII, TABLE1.[PART FIND NO], TABLE1.CSN, TABLE1.AFS, TABLE1。 EQP_POS_CD,TABLE1.LCN,TABLE1.POS_CT,TABLE1.SERIAL_NO,TABLE1.PART_NO_LLP,table2.[PART-ATA-NO],table2.[PW-PART-NO] FROM TABLE1 LEFT JOIN table2 ON TABLE1.[PART FIND NO] = table2.[PART-ATA-NO];
标签: sql ms-access join distinct-values