2013-02-13 108 views
3

美好的一天,我有这3张桌子......即;显示来自一个表的结果

客户表

cust_id cust_name sales_employee 
1  abc  1 
2  cde  1 
3  efg  2 

事务表

order_num cust_id sales_employee 
1001  1   1 
1002  2   2 

的sales_employee表

sales_employee  employee name 
1     john doe 
2     jane doe 

我该怎么让两个客户表和交易表中的雇员的名字吗? 注意sales_employee可以更改每个事务的方式,但不一定必须每个客户都一样。

请大家帮忙。

+0

如果员工在交易过程中发生变化,您想要显示哪一个? – 2013-02-13 03:06:29

+1

如果您对此设计有任何控制权,请对其进行更改。客户表不应该有sales_employee字段。 – 2013-02-13 03:08:26

+0

@Dan它应该只是重命名为CurrentSalesRep。通常,销售代表将在客户之间进行洗牌。在交易中,您想查看销售代表在销售时的姓名。这在一些商业设置中是相当典型的。我认为马克可能是DB的新人,并且由于有两种销售代表而被抛弃。 “当前”和“时间点” – 2013-02-13 03:09:14

回答

1

要选择客户与销售人员的姓名

​​

(单位交易的时间点)

select 
    T.*, 
    E.employee_name as Trans_employee, 
    C.cust_name, 
    EC.employee_name as Cust_employee 
from 
    Transactions as T 
    inner join Sales_Employees as E on E.sales_employee = T.sales_employee 
    inner join Customers as C on C.cust_id= T.cust_id 
    inner join Sales_Employees as EC on EC.sales_employee = C.sales_employee 

此代码选择客户的名称和营业员的名字交易是为了引导你,你需要调整它以匹配你的表和字段名称。

+0

感谢您的回答。有没有办法显示客户和交易的sales_employee名称?像: – 2013-02-13 04:04:59

+0

是的,我修改了代码来显示这样做的一种方法。您需要第二次加入员工表 – 2013-02-13 04:06:31

+0

但是,我可以在一个视图中显示两个表的sales_employee名称吗? – 2013-02-13 04:12:50

相关问题