2015-10-14 63 views
1

我有一個存儲過程包含一個簡單的查詢,如下所示。該查詢會拉下在工作中提交的所有出價。TSQL有條件的地方基於另一個表

但是,我需要在WHERE子句中增加一個附加部分。

還有第二個表,名爲Admins,表中的字段employeeID。如果傳遞給存儲過程的員工標識存在於Admins中,它將降低所有出價。如果它們不存在於Admins中,則只會降低出價b.actor = @employee

總之,如果存在Admin@employee,離開where子句它是如何(拉下來的RequestID的所有信息。但是,如果他們沒有在該表中,需要在AND b.actor = @employee

SELECT b.bidID , 
     b.requestID , 
     b.notes , 
     b.team , 
     b.devDays , 
     b.complexity , 
     b.estimatedCost , 
     b.actor , 
     b.status, 
     REPLACE(CONVERT (VARCHAR (20), b.timestamp, 106), ' ', '-') AS timestamp, 
     e.PreferredName AS bidderFirstName, 
     e.LastName AS bidderLastName, 
     e.NTID AS bidderNTID 
FROM dbo.BS_ToolRequests_Bids AS b 
LEFT OUTER JOIN dbo.EmployeeTable AS e 
ON b.actor = e.QID 
WHERE b.requestID = t.requestID 
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('bids') 

添加我怎麼能去這樣做?上面的代碼是一個子選擇在一個較大的查詢,但需要某種類型的條件添加到它。

回答

2

你可以添加一個OR子句現有WHERE條款?

WHERE 
    AND ( EXISTS(SELECT 'f' FROM Admins WHERE employeeid = @employeeid) 
     OR b.actor = @employeeid 
    ) 
+1

這實際上是完美的,不知道'存在'可以在'AND'部分中使用。很快就會接受。 – SBB

相關問題