0

我有两张桌子。

**EmployeeInfo**
   EmployeeName varchar(50)
   EmailAddress varchar(100)
   BranchID     int

**BranchInfo**
   BranchID  int
   opMgr     varchar(100)
   BranchMgr varchar(100)

我想要一个存储过程,如果我将电子邮件地址作为参数传递,它应该将 branchinfo 表中的 OpMgr 和 BranchMgr 列显示到 EmployeeInfo 相关分支的单个列中。我正在尝试编写以下内容,但没有运气,因为我遇到了多部分错误。

SELECT  BranchInfo.OpMgr FROM  EmployeesInfo 
UNION
SELECT BranchInfo.BranchMgr FROM EmployeesInfo 
INNER JOIN BranchInfo ON EmployeesInfo.BranchID = BranchInfo.BranchID
WHERE AND EMPLOYEESINFO.EMAILADDRESS='john.d@mydomain.com'
4

4 回答 4

2

尝试这个:

SELECT
    E.EmployeeName,
    E.EmailAddress,
    B.BranchID,
    B.BranchMgr + ' ' + B.opMgr ColName
FROM EmployeesInfo E
    INNER JOIN BranchInfo B
        ON E.BranchID = B.BranchID
WHERE E.EMAILADDRESS='john.d@mydomain.com'
于 2013-02-06T11:07:17.487 回答
1

它应该将 branchinfo 表中的 OpMgr 和 BranchMgr 列显示到EmployeeInfo 相关分支的单个列中

DECLARE @opMgr VARCHAR(100), @BranchMgr VARCHAR(100)

SELECT @opMgr  = b.opMgr, @BranchMgr =  b.BranchMgr
FROM EmployeeInfo e
JOIN BranchInfo b ON e.BranchID = b.BranchID
WHERE e.EMAILADDRESS='john.d@mydomain.com'

SELECT details 
FROM ( VALUES (@opMgr),(@BranchMgr)) 
AS t(details) 
于 2013-02-06T11:46:56.353 回答
1

你可以JOIN这样

SELECT b.opMgr + b.BranchMgr as Branch
FROM EmployeeInfo e
JOIN BranchInfo b ON b.BranchID = BranchID
WHERE e.EMAILADDRESS='john.d@mydomain.com'
于 2013-02-06T11:06:31.730 回答
0

尝试这个,

SELECT BranchInfo.OpMgr, BranchInfo.BranchMgr
  FROM EmployeesInfo
 INNER JOIN BranchInfo ON EmployeesInfo.BranchID = BranchInfo.BranchID
 WHERE AND EMPLOYEESINFO.EMAILADDRESS = 'john.d@mydomain.com'
于 2013-02-06T11:07:32.313 回答