我有两张桌子。父母包含客户数据。孩子由购买的产品组成。问题是我有多种形式的数据可以使这两个表格生效,但我没有确定的IDer。具体做法是:
表1为Customer Name, Customer Number, Telephone 1, Telephone 2, Telephone 3, Telephone 4,d Email
表2为Telephone 1, Telephone 2, Email, Product
我需要编写一个查询来将这两者合并在一起。我甚至不知道如何在逻辑上做到这一点。我的最终目标是尽可能多的产品与尽可能多的客户匹配。
我当时认为表1会比较电话1和表2:电话1。如果匹配,则匹配客户编号和产品。
Then Table 1:Telephone 1 to Table 2:Telephone2.
Then Table 1:Telephone2 to Table 2:Telephone1.
Then Table 1:Telephone2 to Table2:Telephone2.
Then Table1:Telephone3 to Table2:Telephone1.
Then Table1:Telephone3 to Table1:Telephone2.
Then Table1:Telephone4 to Table2:Telephone1.
Then Table1:Telephone4 to Table2:Telephone2.
Then Table1:Email to Table2:Email.
显然,我也想避免重复。必须有一种比编写9个单独查询更简单的方法,对吧?我可能只是太老了,无法弄明白。如果有人可以提供帮助,那就太棒了。
如果可能的话,我更喜欢在Access中执行此操作,但我们也可以在SQL中执行此操作。
请帮忙!谢谢!
目前,正在尝试此操作,它会返回使用已购买产品设置的正确客户ID。
SELECT DISTINCT Customer_ID
FROM customerinfotest T1
INNER JOIN websalestest T2 ON
T2.Phone IN
(T1.Telephone_1,T1.Telephone_2,T1.Telephone_3,T1.Telephone_4)
OR
T2.ShippingPhone IN
(T1.Telephone_1,T1.Telephone_2,T1.Telephone_3,T1.Telephone_4)
OR
T2.Email = T1.Email
现在,如何设置查询结果的格式,以便获取客户信息并总结其总购买量?
谢谢!
答案 0 :(得分:1)
我认为这可能是一个好的开始。您查看产品表中的Telephone 1
是否是客户表中的4个电话号码之一,或者Telephone 2
是否是其中之一。您还可以检查电子邮件是否匹配:
SELECT DISTINCT [Customer Name], [Product]
FROM Table1 T1
INNER JOIN Table2 T2 ON
(
[T2].[Telephone 1] IN
([T1].[Telephone 1],[T1].[Telephone 2],[T1].[Telephone 3],[T1].[Telephone 4])
OR
[T2].[Telephone 2] IN
([T1].[Telephone 1],[T1].[Telephone 2],[T1].[Telephone 3],[T1].[Telephone 4])
OR
[T2].[Email] = [T1].[Email]
)