0

このようなテーブルがあり、入力パラメータ RevParam があります。

Key Rev IsCurrent
=====================
abc 0   TRUE
def 0   TRUE
ghj 2   FALSE
ghj 0   TRUE
klm 0   TRUE
def 1   FALSE
abc 1   FALSE
abc 2   FALSE

Key独自の価値を出したいところ。RevParamその Rev 値を持つすべての行を表示するように設定されている場合、欠落している行は次のようになりKeyます: リビジョン 0. 次のように:

Result if RevParam = 1      

abc 1   FALSE
def 1   FALSE
ghj 0   TRUE
klm 0   TRUE

Result if revisionParameter = 0     

abc 0   TRUE
def 0   TRUE
ghj 0   TRUE
klm 0   TRUE

これは一日中私を悩ませています、助けてください!

4

2 に答える 2

4
WITH records
AS
(
    SELECT  [key], [rev], [IsCurrent],
            ROW_NUMBER() OVER(PARTITION BY [key]
            ORDER BY CASE WHEN [rev] = 1          -- <<== change REV value here
            THEN 0 ELSE 1 END) rn
    FROM    tableName
    WHERE   [Rev] IN (1,0)
)
SELECT  [key], [rev], [IsCurrent]
FROM    records 
WHERE   rn = 1
于 2013-04-12T12:31:34.447 に答える
0

RevParam = 1 の場合の結果

abc 1 FALSE def 1 FALSE ghj 0 TRUE klm 0 TRUE

rev 値は 0 と 1 があります。明確に指定してください

于 2013-04-12T12:32:45.710 に答える