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