我有两张表Tabel1
和Table2
。我的表看起来像这样。
表1有三个字段Cust_Number, sales_org and Orders.
表2包含按名称Cust_Number, sales_org, BU and Dist_Channel.
table1中缺少Dist_Channel因此我必须从表2中获取Cust_Number和sales_org的区别,然后与table1进行连接以获得相应的BU。
我能够在MS访问中通过创建一个额外的查询来拉取不同的Numbers,然后在我的最终查询中使用该查询。
有人可以对此提出一些建议吗?
答案 0 :(得分:0)
SELECT t1.cust_number, t2.bu, t2.dist_channel
FROM table1 t1, table2 t2
WHERE t1.cust_number = t2.cust_number
AND t1.sale_org = t2.sales_org
AND -- your actual criteria go here
答案 1 :(得分:0)
Cust_Number,sales_org,在您可以通过左连接
执行此操作的表中都很常见首先检查Cust_Number的不同计数,表2中的sales_org是否相同
SELECT Tabel1.Cust_Number, Tabel1.sales_org, Table2.BU FROM Tabel1 left JOIN Table2 ON Tabel1.Cust_Number = Table2.Cust_Number AND Tabel1.sales_org = Table2.sales_org
答案 2 :(得分:0)
试试这个简单的版本:
SELECT t1.cust_number, t1.sales_org, t2.BU
FROM Tabel1 t1
INNER JOIN Table2 t2 ON t1.cust_number= t2.cust_number AND t1.sales_org = t2.sales_org
答案 3 :(得分:0)
你可以这样做: -
SELECT tbl1.cust_number, tbl1.sales_org tbl2.bu, tbl2.dist_channel
FROM Table1 as tbl1, Table2 as tbl2
WHERE tbl1.cust_number = tbl2.cust_number
AND tbl1.sale_org = tbl2.sales_org
......
答案 4 :(得分:0)
Santhosa,据我所知,问题是,在Table2中,您可以拥有多个具有相同客户编号和销售组织(但不同的dist_channels)的行,以便与表的简单连接将乘以即将到来的行数表1之外,这不是你想要的。相反,您希望将Table2简单地用作查找客户编号和销售组织的BU,并且我们假设存在来自cust_number,sale_org - >的功能依赖性。 BU,即对于表2中任何给定的cust_number,sale_org对,BU总是相同的。
如果该假设为真,那么您可以执行以下操作:
SELECT tb1.cust_number, tb1.sales_org, tb2.bu
FROM Table1 AS tb1
JOIN (
SELECT DISTINCT cust_number, sales_org, bu
FROM Table2) AS tb2
ON tb1.cust_number = tb2.cust_number
AND tb1.sales_org = tb2.sales_org
但请记住,如果给定的cust_number,sales_org对有多个BU,那么这仍然会导致为Table1中给定的cust_number,sales_org对返回多行。