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

Sql 存储过程中如何从多个表中获取值,sql,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.E

我有一个这样的存储过程

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
我有这样的交易表

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
Ecode   Ename
E001    jaseem
E002    ramesh
我有一张老板的桌子

uid   Ecode uname
1      E001  jas
2      E002  ramu
Ecode   Ename
E001    jaseem
E002    ramesh
液体和液体是一样的


如果status=0,则获取对应PAICID的uid,然后获取对应uid的Ecode,并从Employee master表中显示then Ename,我如何编写此存储过程?

您的
Ename
字段(在from之前)可以重新写入
COALESCE(u.uname,e.Ename,“Deliver”)
可能重复的问题,请停止回答越来越多的问题。您可以编辑您的问题。如果你得到的答案不起作用,请在这些答案上留下评论,说明问题所在。或者,如果人们误解了您的问题,请对您现有的问题添加更多的解释。我可以将此存储过程放在我的存储过程中的什么位置我是存储过程中的新手,如果您不介意,请将您的存储过程与我的存储过程进行比较,首先我想检查usermaste的paicid和uid,,然后我只想从用户主表中获取响应的Ecode
SELECT Ename
FROM transaction
INNER JOIN master ON master.Ecode = transaction.Ecode
INNER JOIN Employeemaster ON Employeemaster.Ecode = master.Ecode
WHERE transaction.status = 0