2017-05-06 10 views
0

現在、SQLの基礎を学んでいます。私はこのクエリを試しましたが、結果は行のうちの1つ(FireBow)だけで動作するようになりました。これをどうやって解決するのですか?1行でSUM gworkingのみを使用するSQLクエリ

CREATE TABLE store (id_prod INTEGER PRIMARY KEY AUTOINCREMENT, prod TEXT, price REAL, q REAL); 
INSERT INTO store (prod, price, q) VALUES ("DragonSword", 1500.0, 4.0); 
INSERT INTO store (prod, price, q) VALUES ("MagicOrb", 950.0, 7.0); 
INSERT INTO store (prod, price, q) VALUES ("FireBow", 500.0, 5.0); 
UPDATE store SET q=q-3 WHERE prod="FireBow"; 

SELECT prod, price, q, ((price*q)/SUM(price*q)) AS prec_worth 
FROM store; 
+0

あなたは何をしたいですか?どのような出力をしたいですか? – Sylogista

+0

どのDBMSを使用していますか? (あなたのコードは無効な標準SQLです) –

+0

どのクエリですか?あなたは「作品」として何を定義していますか? SELECTから1行しか得られないと言っていますか? CREATEとUPDATEが期待どおりに機能しているということは肯定的ですか?簡単なデータで最小限の例を作り、期待される結果を表示してください。 – Elin

答えて

0

あなたは文でグループを使用していない場合、それは1つのレコードのみが表示されます。 SUMを直接クエリに使用する代わりに。サブクエリーで以下を使用します。

SELECT prod, price, q, ((price*q)/(select sum(price*q) from store s)) AS prec_worth 
FROM store t; 
+0

ありがとうございます。なぜあなたはそこにこれを追加したのですか? –

+0

これを削除することができます。実際にはクエリの内部テーブルと外部テーブルのエイリアスです。しかし、それらはこのクエリでは役に立たないので省略することができます。 –

関連する問題