而存储过程如何从多个表中获取值

时间:2013-06-21 19:46:22

标签: sql

我有一个像这样的存储过程

SELECT t.transactID, 
       t.TBarcode, 
       t.PAICID, 
       t.Status, 
       k.HBarcode, 
       ISNULL(COALESCE(u.uname, e.Ename), 'Deliver') AS EName 
FROM   
    Transaction_tbl 
LEFT JOIN 
    UserMaster_tbl u ON u.ECode = t.Ecode AND t.Status = 0 
LEFT JOIN 
    EmployeeMaster_tbl e ON e.ECode = t.ECode AND t.Status = 1 OR e.Ecode = t.DelEcode AND t.Status = 4 
LEFT JOIN 
    KHanger_tbl k ON t.transactID = k.transactid AND t.Status = 2 
WHERE  
    t.TBarcode = @Carid

我有这样的交易表

transactID  TBarcode   Ecode    DelEcode     PAICID  status
1            1234       E001        E002         1         0
2             4567      E002        E001         2         1
3            24567      E003        E003         2         4

我有用户主表

uid   Ecode uname
1      E001  jas
2      E002  ramu

我有Employeemaster表

Ecode   Ename
E001    jaseem
E002    ramesh

Uid和PAICID相同

如果status = 0则接受相应的PAICID的uid,然后取相应的uid的Ecode,然后从Employee主表中显示Ename,我怎么写这个的存储过程?

1 个答案:

答案 0 :(得分:0)

SELECT Ename
FROM transaction
INNER JOIN master ON master.Ecode = transaction.Ecode
INNER JOIN Employeemaster ON Employeemaster.Ecode = master.Ecode
WHERE transaction.status = 0