2011-02-10 17 views
1

私は3つのテーブルを持っているとしましょう:顧客、武器、注文。私が望むのは、顧客ごとに、カテゴリ(銃、ピストルなど)ごとに買った商品の数量と武器の総量を表示する必要があるテーブルを作成することです。それは単にSQLクエリを使用して実装可能ですか?私はSQL CEを使用しようとしているので、サブクエリなしでこれを実装できますか?構造は次の通りですグループのSQLグループby?

テーブル: 顧客(ID、名前) 武器(ID、weapon_type) 注文は

(CUST_ID、数量、weap_id)そして、私はこれを取得したい:

 
Name  | Order(w_type) | Quantity | Total 
-----------+---------------+--------------+----------- 
John Smith | Guns  |  3  | 7 
John Smith | Pistols  |  4  | 7 
-----------+---------------+--------------+----------- 
Jane Doe | Guns  |  5  | 14 
Jane Doe | Pistols  |  7  | 14 
Jane Doe | Cannons  |  2  | 14 

をまたは(さらに良い)

 
Name  | Order  | Quantity | Total 
-----------+---------------+--------------+----------- 
John Smith | Guns  |  3  | 
John Smith | Pistols  |  4  | 
-----------+---------------+--------------+-----------           
               7 
-----------+---------------+--------------+----------- 
Jane Doe | Guns  |  5  | 
Jane Doe | Pistols  |  7  | 
Jane Doe | Cannons  |  2  | 
-----------+---------------+--------------+----------- 
               14 

ありがとうございます。

+0

既存のクエリを投稿できますか?そしておそらく完全なテーブル構造は、どうやってそれらが互いにリンクしているかを見ることができます。 'group-by'節は複数の列を指定できるので、' group by name、w_type、etc'を持つことができます。また、いくつかのSQL方言では、別々のレコードとして集計することが可能かもしれませんが(私はOracleが 'ロールアップ 'でそれを行うことができると思いますが)、SQL CEについてはわかりません。 – FrustratedWithFormsDesigner

+0

私は以下を使用します: c.name、w.type、sum(oq)を数量から選択します。o cust_id = c.idにcustを追加します.cidをw.id = o.weap_idに追加します。 by c.name 、w.type – Blablablaster

答えて

0

CEには、最初の結果を得ることのできる分析機能(SUMなど)はありません。

あなたの意図した( "より良い")結果が2番目のものであっても、表形式でない場合、2つのクエリを起動する必要があります。 1つはテーブル用、もう1つは合計用です。どちらか、またはあなたがテーブル結果(人によって注文)を通過するときに合計を収集します。