2013-04-05 60 views
0

查詢#1如何where子句中的過程

SELECT 
    @IN_EMPCOUNT = COUNT (a.CH_EMPCODE) 
FROM 
    BSC_REVIEW_EMP_MASTER a 
INNER JOIN 
    dbo.cmn_authorization b ON (CASE b.vc_bu WHEN '%' THEN a.BUSSCD ELSE b.vc_bu END) = a.BUSSCD   
WHERE 
    IN_REVIEW_NO = @in_review_no 
    AND b.ch_empcode = @ch_empcode 
    AND b.in_rolecode IN (136, 137, 138) 

查詢#2

SELECT 
    @IN_EMPCOUNT1 = COUNT (a.CH_EMPCODE) 
FROM 
    BSC_REVIEW_EMP_MASTER a 
INNER JOIN 
    dbo.cmn_authorization b ON (CASE b.vc_bu WHEN '%' THEN a.BUSSCD ELSE b.vc_bu END) = a.BUSSCD   
WHERE 
    IN_REVIEW_NO = @in_review_no 
    AND b.ch_empcode = @ch_empcode 
    AND b.in_rolecode IN (138, 139, 140) 

查詢#3

SELECT 
    @IN_EMPCOUNT2 = COUNT (a.CH_EMPCODE) 
FROM 
    BSC_REVIEW_EMP_MASTER a 
INNER JOIN 
    dbo.cmn_authorization b ON (CASE b.vc_bu WHEN '%' THEN a.BUSSCD ELSE b.vc_bu END) = a.BUSSCD   
WHERE 
    IN_REVIEW_NO = @in_review_no 
    AND b.ch_empcode = @ch_empcode 
    AND b.in_rolecode IN (141, 142, 145) 

結果使用相同的SQL查詢多個:

Select @in_empcount, @in_empcount1, @in_empcount2 

這是我正在處理的示例查詢。我可以做一些類似的事情嗎?不需要爲每個條款for (b.in_rolecode)重複相同的選擇語句,結果會是相同的嗎?

+0

您可以提供的樣本數據並期望的結果 - 不知道我理解你的問題。 – sgeddes 2013-04-05 03:57:40

+1

此外,請指出您正在使用的SQL產品並相應地標記問題。 SQL產品之間存在細微的語法差異。 – 2013-04-05 04:02:14

+0

請立即檢查 – 2013-04-05 04:08:59

回答

0

這是你的要求 - 包括你的IN條款所有這些值:

select name 
from tabl1 
where id in (1,2,3,4,8,9) 

IN子句工作就像or子句,因此沒有必要對這些查詢分開。

編輯 - 根據您最新的修改,你打算用例和COUNT(你也可以使用SUM,但它的工作方式相同):

SELECT 
    COUNT (CASE WHEN b.in_rolecode IN (136,137,138) THEN 1 END) in_empcount, 
    COUNT (CASE WHEN b.in_rolecode IN (138,139,140) THEN 1 END) in_empcount1, 
    COUNT (CASE WHEN b.in_rolecode IN (141,142,145) THEN 1 END) in_empcount2 
FROM BSC_REVIEW_EMP_MASTER a 
    INNER JOIN dbo.cmn_authorization b 
     ON (CASE b.vc_bu WHEN '%' THEN a.BUSSCD ELSE b.vc_bu END) = a.BUSSCD   
WHERE IN_REVIEW_NO = @in_review_no 
    AND b.ch_empcode [email protected]_empcode 
+0

不,我希望根據條件在不同列中的所有結果 – 2013-04-05 03:56:34

+0

@rohitsingh - 請參閱上面的編輯 - 感謝您發佈您的實際查詢。 – sgeddes 2013-04-05 04:14:09

+0

感謝100萬,它幫助我:) – 2013-04-05 04:25:33