2016-02-08 54 views
-1

enter image description here 我有一個包含性別和值等列字段的「test_comparitive_analysis」表。另一個表格「cmparitive_analysis_dup」欄位字段類似「男孩」和「女孩」。問題是我想將「test_comparitive_analysis」的所有列值插入「cmparitive_analysis_dup」。條件是如果性別爲「F」,則「值」列數據將移動到「女孩」列anf,如果它是「M」 「值」列數據將移動到「男孩」如何使用另一個表格數據將表格值插入到表格中

怎麼可能

enter image description here

"CREATE TABLE IF NOT EXISTS `comparitive_analysis_dup` (
     `cmb_id` int(5) NOT NULL AUTO_INCREMENT, 
     `class_id` int(10) NOT NULL, 
     `division` varchar(3) NOT NULL, 
     `boys` varchar(100) NOT NULL, 
     `girls` varchar(100) NOT NULL, 
     `subject_name` varchar(20) NOT NULL, 
     `exam_name` varchar(5) NOT NULL, 
     `term_id` int(3) NOT NULL, 
     PRIMARY KEY (`cmb_id`) 
     ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; " 
+0

發表您的相關表結構 – 1000111

+0

多數民衆贊成我的表結構 –

+0

我的意思是說你張貼創建表代碼。 – 1000111

回答

0

用兩個案例(一個女性,一個男性)和內連接

insert into cmparitive_analysis_dup(subject_name, boys, girls) 
select a.subject_name, 
    sum(case when a.gender = 'F' then a.value else 0 end), 
    sum(case when b.gender = 'M' then b.value else 0 end) 
from test_comparitive_analysis as a 
inner join test_comparitive_analysis as b on(a.cmb_id = b.cmb_id) 
group by a.subject_name 
+0

我的錶行得到複製根據subject_name –

+0

我想只有一個單一主題的行。 –

+0

你想要一個基於subject_name的聚合,例如sum('F')? – scaisEdge

相關問題