質問編集履歴
1
間違ったことを書いてしまったため
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;
|