私の要件が正しく理解されている場合、以下のクエリはSSRSデータセットとして機能します。私はあなたがテーブルから列を選択したいと思っていますStockedフィールドがnullではなく、 "現在の製品"の特定の範囲内のSodium範囲は、レポートのパラメータとしてユーザーによって指定されています。
これは、レコード間の値の比較に依存するため、レポート自体のデータセットのクエリでフィルタリングするほうがはるかに簡単です。
私はこれを逃した場合、あなたのサンプルテーブルにいくつかの行を追加すると助けになると思います。
;
WITH
(
SELECT
[Current Product] ,
[Stocked] ,
[OriginalProduct] ,
[Sodium(Mg)]
FROM
#TempConversion7
WHERE
MemberPurchaseDataId IN (SELECT DISTINCT
MemberPurchaseDataId
FROM
#TempConversion7
WHERE
SrNo > 1)
) AS ListCTE
SELECT
*,
CASE WHEN CurrentProd.[Sodium(Mg)] >=
(MatchProd.[Sodium(Mg)] *(1.0 - (@MatchValueParameter * 0.01)))
AND CurrentProd.[Sodium(Mg)] <=
(MatchProd.[Sodium(Mg)] *(1.0 + (@MatchValueParameter * 0.01)))
THEN
1
ELSE 0
END
AS WithinPercentRange
FROM
ListCTE AS CurrentProd
FULL OUTER JOIN
ListCTE AS MatchProd
ON CurrentProd.OriginalProduct = MatchProd.OriginalProduct
AND CurrentProd.[Current Product] = 'Current Product'
AND MatchProd.[Current Product] = 'Match'
いいね。いいですね。 –