teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

間違ったことを書いてしまったため

2015/09/06 16:10

投稿

true
true

スコア440

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  データベースの設計は以下のとおりで、この例では最上位項目にカテゴリーとして、和食、洋食の2種類あり、さらに各々の下に具体的な料理名がぶら下がっており、各料理名は価格情報を持っています。そしてその価格の小計をやったうえで再度同じ順番で結果を出したいと思っております。
5
5
 
6
- とりあえずはできたのですが、もっとスマート書き方、考え方などがあればご教示下さいますよう、お願い致します。
6
+ にかいい、考え方などがあればご教示下さいますよう、お願い致します。
7
7
 
8
8
  環境
9
9
  sqlite3.8.5
@@ -23,7 +23,7 @@
23
23
  21 オムライス 2 1 100
24
24
  22 ハンバーグ 2 2 100
25
25
 
26
- とりあえずの成功
26
+ 惜しいが失敗した
27
27
  和食、洋食の小計を入れつつ、順番も保持する
28
28
  select (id/10)*10 as id, (select name from test where id=(id/10)*10) as name, cat, 0 as menu, sum(price) as price from test group by cat union all select id, name, cat, menu, price from test where menu!=0 order by id;
29
29
 
@@ -32,12 +32,10 @@
32
32
  10 和食 1 0 200
33
33
  11 そば 1 1 100
34
34
  12 うどん 1 2 100
35
- 20 和食 2 0 200
35
+ 20 和食 2 0 200 ←洋食になっていないため失敗
36
36
  21 オムライス 2 1 100
37
37
  22 ハンバーグ 2 2 100
38
38
 
39
- この形を実現したいが、自分のコードだとidの数字次第ではおそらく応用が効かないと思われます。
40
-
41
39
  失敗例
42
40
 
43
41
  select id, name, cat, menu, sum(price) as price from test group by cat union all select id, name, cat, menu, price from test where menu!=0 order by id;