0

フォーラムでさまざまな「条件付き合計」の質問を確認しましたが、私がやろうとしていることとまったく一致するものはありません。

データベースにはDateStore#Item#、およびがあり%Total Salesます。場合によっては、同じ日付の同じ item# に複数の値が指定されることがあります%Total Sales。(何らかの理由で、これはめったに発生しない有効なビジネス シナリオですが、発生します。)

その場合のみ、要件は 2 つの値を合計して 1 行にすることです。したがって、Item# 123 に値が .05% の行と値が .08% の別の行がある場合、これら 2 つの値を合計して、%Total.13% の値を持つ Item #123 の 1 つの行にする必要があります。アイテムに複数のパーセンテージが割り当てられている場合のみ、それらのパーセンテージを合計する必要があります。それ以外の場合、item# に割り当てられたパーセンテージ値が 1 つだけの場合、その値を確認したいだけです。

これを行う方法がわかりません。基本的に、次のように機能するロジックを実装したいと思います。

SELECT Date, Store#, Item#, 
CASE WHEN Count(%Total Sales) >1 THEN Sum(%Total Sales) 
ELSE %Total Sales
END

FROM (some tables and joins)
GROUP BY Date, Store#, Item#

ただし、構文エラーが発生しないように作成する方法がわかりません (このクエリはエラーを生成します)。

どんな助けでも大歓迎です。

ありがとうございました!

4

2 に答える 2

0

複数の行を返す唯一の値でグループDate, Store#, Item#化すると、同じ日付の同じアイテムの合計売上高の複数​​の値を持つ行が返されます。

したがって、項目をグループ化するだけで十分です。

SELECT Date, Store#, Item#, Sum(%Total Sales) 
FROM (some tables and joins)
GROUP BY Date, Store#, Item#
于 2013-10-16T03:22:51.350 に答える