2017-09-19 24 views
0

まだSSRSでこれを行う必要はなく、私は自分の頭を傷つけています。SSRS同じ行の他のセルに基づく1つのセルのクエリ結果

基本的に、私はDataSet1に基づいてTablixを持っています。Tablixは、AssemblyNameという名前のフィールドでソートされ、グループ化されています。 2番目の列の値は、Quantityというフィールドの合計に基づいています。 (データベーステーブルでは、各行にAssemblyName値とQuantity値があります)

難しい部分は次のとおりです。AssemblyNameとQuantityの「スナップショット」を含む別のテーブルがデータベースにあります)データ。

私のTablixでは、行の最初のセルのAssemblyNameの古い数量を合計する同じ行にセルを表示したいとします。古い数量は、古いデータでデータベーステーブルから引き出されます。

基本的には、AssemblyNameでグループ化されソートされたTablixを表示し、TablixにAssembly Name(現在のDBテーブルから)、現在のQuantityの合計(現在のDBテーブルから)、および古いQuantity sum(古いデータを持つ別のDBテーブルから)。

私は、古いDBテーブルからの古いQuantity合計を含むセルを除いて、すべてが動作しています。

古いDBテーブルは同じデータベースにありますので問題はありません。私の問題は、同じTablix行のAssemblyNameの値に基づいて古いテーブルの数量を合計するクエリを作成することです。私はパラメータに基づいてクエリをデータセット2を作成しようとしました

は、データセット1から引き出され、その後、古い数量セルにこの式を書く:

=Sum(Fields!Quantity.Value, "Dataset 2") 

私は内のすべてのセルに空白の値を取得しています上記の式を含む3番目の列。データセット2が実際に同じTablix行のAssemblyNameの値を読み取っていないため、私はそれを仮定しています。しかし、私がやりたいことの本質は、AssemblyNameを含むtablixの最初の列の値を、Dataset 2のクエリのWHERE句に渡します。このパラメータのデータは、3番目の列のセルに表示されます。同じtablix行。

ことができます場合は、次のように、データセット2からの問合せは、次のとおりです。

SELECT AssemblyName 
, Quantity 
FROM OldData 
WHERE AssemblyName = @compare_AssemblyName 

私は、これは理にかなって願っていますが、私は明確にすることができるよう、必要に応じて質問をしてください。

よろしくお願いいたします。

+0

おそらく、私はデータセット1のクエリ内の古い量を合計することができます? –

+0

両方のデータセットのサンプルデータを表示できますか? – Harry

+1

ルックアップを試しましたか?このような何か= LookUp(Fields!AssemblyName.Value、Fields!AssemblyName.Value、Fields!Quantity.Value、 "dataset_oldvalue")。 – Harry

答えて

0

あなたはその後、ちょうどそれぞれのフィールドを合計し、同じクエリに沿ってあなたの新しいデータで古いデータを取得することができるはずです。

SELECT AssemblyName 
    , NewQuantity = n.Quantity 
    , OldQuantity = COALESCE(o.Quantity, 0) 
FROM NewData n 
    LEFT JOIN OldData o 
     ON n.AssemblyName = o.AssemblyName 
WHERE n.AssemblyName = @compare_AssemblyName 
関連する問題