0

レポートに次のような表現があります。

=iif(
SUM(Fields!Amount.Value) >
    (
    SUM(iif
        (
        Fields!Date.Value >= DateAdd("d",-10,TODAY())
        ,Fields!Amount.Value
        ,CDbl(0)
        )) / 10
    )*2.0,
"Gold",
"Transparent"
)

テーブルのテキスト ボックスの背景色を制御しています。

セル内の金額がその特定の行の 10 日間の平均の 2 倍以上である場合、セルが金に変わることを期待していました。

この表は 10 日間のデータを示しており、使用するデータセットには 60 日間のデータが含まれているため、10 日間の平均が利用できるはずです。

表現が間違っていませんか?

これは現在作成しているものです。完全にオレンジ色の 2 つの行は、明らかに私が望んでいるものではありません。

ここに画像の説明を入力

4

1 に答える 1

1

問題は、平均を作成するために行っている合計にあります。実際には、最初に遭遇した数値を合計し、10 で割って 2 を掛けているだけです。合計の範囲をデータセット全体に変更する必要があります。これが私がこれを証明した方法です。

上記の表の 2 行目の数値を例として取り上げました。これが私のクエリです。

SELECT        '1/15/14' AS dt, 1 AS value
UNION
SELECT        '1/16/14' AS dt, 7 AS value
UNION
SELECT        '1/17/14' AS dt, 5 AS value
UNION
SELECT        '1/18/14' AS dt, 6 AS value
UNION
SELECT        '1/19/14' AS dt, 4 AS value
UNION
SELECT        '1/20/14' AS dt, 5 AS value
UNION
SELECT        '1/21/14' AS dt, 5 AS value
UNION
SELECT        '1/22/14' AS dt, 5 AS value
UNION
SELECT        '1/23/14' AS dt, 6 AS value
UNION
SELECT        '1/24/14' AS dt, 6 AS value

データの列の値に dt を使用して Tablix を作成しました。あなたの平均計算を下の行に入れると、すべての列で 9.8 が返されます。

私は最初にあなたの塗りつぶし式を使用して、あなたと同じ結果を得たことを確認しました. 次に、正しい答えを得るためにそれを変更しました:

=iif(Sum(Fields!value.Value) >  
(Sum(iif(Fields!dt.Value >= Dateadd("d",-10, today()), Fields!value.Value, CDbl(0)), "DataSet1")/10) * 2,
"Gold","White")

私が持っていたデータでは、どの細胞も金色に変わるはずがありません。それが私が得た結果です。1/15 の値を 20 に変更してテーブルをプレビューすると、69/10*2 = 13.8 および 20 > 13.8 であるため、そのセルはゴールドに変わります。

于 2014-01-28T16:22:16.893 に答える