0

この要約SQLクエリを作成しました。2文字( "GR"、 "PH" ...など)のレベルコードが必要であり、1つのインスタンスで複数のアイテムを返すことができるようにクエリを変更する必要があります。

これがコードです

    DECLARE @ALEVL_CODE varchar(5), @test varchar(100)
    SET @ALEVL_CODE = 'GR'
    SET @test = @ALEVL_CODE + ',' + 'PH'

-
                    select ALEVL_CODE  from PMP_Admissions_Letter_Data AD
                    INNER JOIN      PMP_LM_Review LMR
    ON              LMR.PMP_Letter_Data_ID = AD.PMP_Admissions_Letter_Data_ID
    WHERE           LMR.ToPrinter = 1 AND
                    LMR.Extracted = 0 AND 
                    AD.ALEVL_CODE = @ALEVL_CODE                 
                    AND
                    AD.DSCN_MAX_CODE = 'PA'

私が抱えている問題はAD.ALEVL_CODE=@ALEVL_CODE 、where句の行にあります。私はいつのようになりたいのですが、それ以外の場合は@ALEVL_CODEただ行いGRます。これは意味がありますか?いくつかの助けをいただければ幸いです。GRPH@ALEVL_CODE

4

3 に答える 3

2
    AND (AD.ALEVL_CODE = @ALEVL_CODE
         OR (@ALEVL_CODE='GR' AND AD.ALEVL_CODE = 'PH'))

簡略化された代替手段。

于 2013-03-07T19:17:22.150 に答える
1
            select ALEVL_CODE  from PMP_Admissions_Letter_Data AD
            INNER JOIN      PMP_LM_Review LMR
ON              LMR.PMP_Letter_Data_ID = AD.PMP_Admissions_Letter_Data_ID
WHERE           LMR.ToPrinter = 1 AND
            LMR.Extracted = 0 AND 
            ((@ALEVL_CODE = 'GR' AND AD.ALEVL_CODE in ('GR', 'PH')) 
                OR (@ALEVL_CODE <> 'GR' AND AD.ALEVL_CODE = @ALEVL_CODE))                 
            AND
            AD.DSCN_MAX_CODE = 'PA'
于 2013-03-07T18:23:00.730 に答える
0
and case when (@ALEVL_CODE = 'GR') then AD.ALEVL_CODE in ('GR', 'PH') 
         else AD.ALEVL_CODE = @ALEVL_CODE
    end
于 2013-03-07T18:17:27.737 に答える