怎麼通過mysql資料庫處理下面這個問題啊

時間 2021-10-15 02:52:40

1樓:火哥

部門表create table `department`(

`department_no` varchar(8) not null comment '部門編號',

`department_name` varchar(64) not null comment '部門名稱'

)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

insert into department(`department_no`,`department_name`) values ('01','國內業務一部'),('02','國內業務二部'),('03','國內業務三部'),('04','國際業務部');

業績表create table `performance`(

`month` varchar(32) not null comment '月份',

`department_no` varchar(8) not null comment '部門編號',

`numbers` int(10) not null comment '業績數量'

)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

insert into performance(`month`,`department_no`,`numbers`) values ('一月份','01',10),('一月份','02',10),('一月份','03',5),('二月份','02',8),('二月份','04',9),('三月份','03',8);

查詢結果:

select * from departmentdepartment_no | department_name01國內業務一部 |

| 02國內業務二部 |

| 03國內業務三部 |

| 04國際業務部4 rows in set (0.00 sec)

select * from performancemonth | department_no | numbers一月份 | 0110 |

| 一月份 | 0210 |

| 一月份 | 035 |

| 二月份 | 028 |

| 二月份 | 049 |

| 三月份 | 0386 rows in set (0.00 sec)

這是題目想要的結果:

select

b.department_name as '部門名稱',

sum(case when a.month='一月份' then a.numbers else 0 end) as '一月份業績量',

sum(case when a.month='二月份' then a.numbers else 0 end) as '二月份業績量',

sum(case when a.month='三月份' then a.numbers else 0 end) as '三月份業績量'

from

performance a right join department b

on a.department_no=b.department_no

group by

b.department_name部門名稱 | 一月份業績量 | 二月份業績量 | 三月份業績量國內業務一部 | 1000國內業務三部 | 508國內業務二部 | 1080國際業務部 | 0904 rows in set (0.01 sec)

如何學好MySql資料庫?

因吹斯汀 看書或者網上的教程 從基礎開始學習,資料庫的安裝 常用的CRUD操作 以及資料庫的維護方面的知識,一邊學習一邊操作。多多練習時間長了就了解了 xchliu 從畢業到現在,和MySQL打了快10年交道了,自認為沒有學好。結合個人經歷分享一些經驗 1.學以致用。也就是最好帶著需求或者目標去學習...

怎麼用redis做中間資料庫處理資料庫查詢慢的問題?

寇亞龍 5 6秒的SQL首先是根本的問題所在,解決根本問題而不是用別的方案掩蓋它的存在。sql慢大多數情況下就一下幾個原因 SQL查詢沒有使用到索引 表沒有建立索引或者建立的索引不正確 查詢語句導致索引失效 表建立的不合理,需要水平或者垂直拆分 用explain分析一下sql的各項指標,找到根本問題...

如何用R訪問MySQL資料庫

LOWKEYCEO 老師,我發現很多情感文章都在強調降低需求感,難道喜歡乙個人也不能暴露自己的需求感嗎?道理很簡單,因為很多人都不知道需求感是什麼,也沒有搞清楚需求感為什麼會變高。這裡一次性跟大家講清楚,希望大家不要忘記。所謂的 需求感 並不是特指某一種行為,而是一種心態,我喜歡對方,我就要為他付出...