【发布时间】:2019-10-08 16:05:45
【问题描述】:
我有:
- 带有 ID 和名称的 TABLE1。
- 带有 ID 和地址的 TABLE2。
我想获取所有 TABLE1 记录并添加一个 STATUS 列:
- 如果 TABLE2 中存在此记录 - 'OK'。
- 如果 TABLE2 中不存在此记录,则按最后 2 位搜索匹配项,否则为“NO_RECORD”。
- 如果该记录在 TABLE2 中有重复记录,则如果重复记录具有相同的地址,则选择一条记录 - 'OK',如果它们不具有相同的地址 - 'DUPLICATE'。
与此同时,我已经开始这样做了:
SELECT t1.id,
t1.name,
t2.Address,
iif(Address is null, 'No_RECORD', 'Ok') as 'status'
FROM Table1 as t1
left join Table2 as t2 on t1.id = t2.id
例如:
表1
id Name
111 aaa
222 bbb
333 ccc
444 ddd
555 eee
666 fff
777 ggg
888 hhh
999 iii
表2:
id Address
111 rr
922 hfh
444 vbv
444 vbv
555 xxa
555 plo
555 plo
666 wqq
777 gyt
999 ree
999 ree
我接受的结果是:
id name Address 'status'
111 aaa rr Ok
222 bbb hfh Ok
333 ccc No_RECORD
444 ddd vbv Ok
555 eee Duplicate
666 fff fff Ok
777 ggg wqq Ok
888 hhh No_RECORD
999 iii ree Ok
-
444不重复,因为2个table2的记录地址是匹配的, -
555是重复的,因为3个table2的记录地址不匹配, -
999不重复,因为 2 个 table2 的记录地址匹配。 -
222可以,因为它的 id 的最后 2 位存在于 tabl2: "922" 中。
我该如何继续? (我在access中使用sql查询)。
【问题讨论】:
-
向我们展示一些示例表数据和预期结果 - 作为格式化文本,没有图像。看看stackoverflow.com/help/reprex
-
这是什么意思? “如果 TABLE2 中不存在此记录,则按最后 5 位搜索匹配项,否则为 'NO_RECORD'。”
标签: sql ms-access duplicates