Domanda

Hi all (my first post on the Stack!),

This works:

where
    Tran_date between @FromDate and @ToDate

and Range = @Range

and Store_ID =
    case when @Range = 'RangeName' then
        1234
    else
        Store_ID
    end

but how can I achieve this?:

where
    Tran_date between @FromDate and @ToDate

and Range = @Range

and Store_ID 
    case when @Range = 'RangeName' then
        not in (1234, 5678)
    else
        Store_ID
    end
È stato utile?

Soluzione 2

I think you want:

AND NOT (@Range = 'RangeName' AND Store_ID IN (1234,5678))

Altri suggerimenti

where
    Tran_date between @FromDate and @ToDate

and Range = @Range

and Store_ID 
    case when @Range = 'RangeName' AND Store_Id in (1234, 5678)
        9999 -- Assumes 9999 is a non possible value.  
             -- If it is possible then pick one that isn't.
    else
        Store_ID
    end

How about this:

where Tran_date between @FromDate and @ToDate
    and Range = @Range

    and (@Range = 'RangeName' and Store_ID not in (1234, 5678)
        or @Range <> 'RangeName' and Store_ID = Store_ID)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top