1

質問は簡単です-答えも簡単かもしれないと思います。

システムはSQLServer2008R2です。

3つのパラメータを受け取るストアドプロシージャがsp_WHYWHYWHYあります。2つは日付で、1つはサプライヤコードです。

ステートメントのWHERE句は次のようになります。

OrderDate BETWEEN @StartDate AND @EndDate
AND SupplierCode = @SupplierCode

ビジネスプロセスが変更されました-いつものように。したがって、サプライヤコードにはYY、別のサプライヤ(たとえば)とビジネス的に連携しているサプライヤ(たとえば)が1つだけありABCます。

したがって、コードは--includeをクエリするときにも言う必要がABCありYYます。

何かのようなもの

OrderDate BETWEEN @StartDate AND @EndDate
AND SupplierCode = CASE WHEN @SupplierCode = 'ABC' THEN 'YY','ABC' ELSE @SupplierCode END

私はあなたがそのようにこれを書くことができないことを知っています-しかしそれはまさに最終結果であるべきです。

どうすればこれができますか?

読んで答える時間を取ってくれてありがとう。

4

1 に答える 1

2

考えすぎないでください!サプライヤコードを提供された値と一致させるか、提供された値をにABC、保存されたサプライヤコードをに一致させる必要がありますYY

これを試して

AND ([SupplierCode] = @SupplierCode
OR ([SupplierCode] <> @SupplierCode 
    AND @SupplierCode ='ABC' 
    AND [SupplierCode] = 'YY'))
于 2012-10-24T02:22:42.003 に答える