0

この質問にぴったりのタイトルが思いつきませんでしたが、問題がありましたので、ぜひ助けてください!

次のようなものを出力するクエリがあります。

Month | Year | Subcategory | PrivateLabel | Price
-------------------------------------------------
  1   | 2010 | 666         | No           | -520
  1   | 2010 | 666         | No           | -499,75
  1   | 2010 | 666         | No           | -59,95
  1   | 2010 | 666         | No           | -49,73
  1   | 2010 | 666         | No           | -32,95

SUM他のデータはすべて同じなので、価格を付けたいと思います。SUMandでこれを実行できると思ったのですがGROUP BY、その方法がわからないか、少なくとも正しい結果が出力されません。

それが役立つ場合、クエリは2つのテーブル間の内部結合です。

4

2 に答える 2

3
select
   month
   ,year
   ,subcategory
   ,privatelabel
   ,sum(price) as [total sales]
from
   a inner join b ...
where
   any where clauses 
group by
   month
   ,year
   ,subcategory
   ,privatelabel

私があなたを正しく理解している場合は機能するはずです..select内のすべての列は、group byの一部であるか、グループ内のすべての行の集計関数である必要があります

フィドルを追加しました..主に彼がDDL機能へのテキストについて知らなかったので、それをテストしたかったので;-)(Michael Buenに感謝します)

http://sqlfiddle.com/#!3/35c1c/1

where句はプレースホルダーであることに注意してください。

于 2012-05-05T10:07:17.820 に答える
0
select month, year, subcategory, privatelabel, sum(price)
  from (put your query in here) dummyName
 group by month, year, subcategory, privatelabel

基本的な考え方は、現在のクエリを実行して上記の出力を取得し、結果に対して合計とグループ化を行うことです。クエリは括弧で囲む必要があり、dummyNameなどの名前を付ける必要があります。それがSQLで一意であり、できればキーワードではない限り、それが何であるかは関係ありません。

これらすべてを一度に実行する方法があるかもしれませんが、クエリのSQLがないと役に立ちません。

于 2012-05-05T10:22:21.817 に答える