回答編集履歴
1
参考
test
CHANGED
@@ -1,3 +1,50 @@
|
|
1
1
|
まず集計結果をサブクエリーにします。
|
2
2
|
部署ごとに表示したいなら部署に対してleft joinします
|
3
3
|
例示のように集計に対して部署をjoinするならright joinです
|
4
|
+
|
5
|
+
# 参考
|
6
|
+
集計のところを思いっきり省略するとこんな感じです
|
7
|
+
```SQL
|
8
|
+
CREATE TABLE `t_general` (
|
9
|
+
`id` int primary key auto_increment,
|
10
|
+
`depa_id` int,
|
11
|
+
`val` int
|
12
|
+
);
|
13
|
+
insert into t_general(depa_id,val) values
|
14
|
+
(1,100),
|
15
|
+
(1,200),
|
16
|
+
(1,300),
|
17
|
+
(2,100),
|
18
|
+
(2,150),
|
19
|
+
(3,120);
|
20
|
+
|
21
|
+
CREATE TABLE `department` (
|
22
|
+
`id` int(11) NOT NULL,
|
23
|
+
`depa` varchar(20)
|
24
|
+
);
|
25
|
+
INSERT INTO `department` (`id`,`depa`) VALUES
|
26
|
+
(1, '----'),
|
27
|
+
(2, '総務'),
|
28
|
+
(3, '経理'),
|
29
|
+
(4, '庶務'),
|
30
|
+
(5, '人事部');
|
31
|
+
```
|
32
|
+
# 集計
|
33
|
+
```SQL
|
34
|
+
select t1.id,t1.depa,coalesce(t2.val,0) as val
|
35
|
+
from department as t1
|
36
|
+
left join(
|
37
|
+
select depa_id,sum(val) as val from t_general
|
38
|
+
group by depa_id
|
39
|
+
) as t2 on t1.id=t2.depa_id
|
40
|
+
```
|
41
|
+
# 結果
|
42
|
+
|
43
|
+
|id|depa|val|
|
44
|
+
|--:|:--|--:|
|
45
|
+
|1|----|600|
|
46
|
+
|2|総務|250|
|
47
|
+
|3|経理|120|
|
48
|
+
|4|庶務|0|
|
49
|
+
|5|人事部|0|
|
50
|
+
|