2017-04-17 7 views
0

私は助けが必要です。 7 | Iはqurum1と6行目がありhere異なるIDで行を展開する方法は?

結果は= 6これは、クエリ

`SELECT qurum_id, qurum,qurum1, 
     SUM(CASE WHEN DATE_FORMAT(aa.input_date, '%m') BETWEEN 01 AND 06 
      THEN 1 END) AS I, 
     SUM(CASE WHEN DATE_FORMAT(aa.input_date, '%m') BETWEEN 07 AND 12 
      THEN 1 END) AS II 
FROM qurum AS qur 
INNER JOIN (SELECT id, qurum1,input_date FROM DATA) AS aa 
      ON qur.qurum_id = aa.qurum1 
WHERE DATE_FORMAT(aa.input_date, '%Y') = $year 
GROUP BY qurum_id 
ORDER BY qurum_id` 

ある結果が

qurum_id|qurum|qurum1 
     1|one |3 
     2|two |2 
     3|three|1 
     4|four |7 
     5|five |5 
    **6|six |6 
     6|six |4** 
     7|seven|5 

なければならないコルムテーブル

qurum table    data table 
qurum_id|qurum   id|qurum1 
     1|one    1|3 
     2|two    2|2 
     3|three    3|1 
     4|four    4|7 
     5|five    5|5,6 
     6|six    6|4 
     7|seven    7|5 
where qurum_id = data.qurum1 

を有しますQurum_id 6とqurum_id 7は異なるQurumを持っているため、テーブル内では、しかし、私は6 | 7を爆発させる必要があります。 PICは、私が

答えて

0
SELECT SUBSTRING_INDEX(qurum1, ' ', 1) AS first_part, 
SUBSTRING_INDEX(qurum1, ' ', -1) as second_part FROM qurum; 
+0

は 'qurum_id、コルム、qurum1、 SUM(CASE DATE_FORMAT(aa.input_date、 '%のM')END 1 THEN \t \t 01の間で06を選択言いたいことを最善をshowます)I、 SUM(CASE WHEN DATE_FORMAT(aa.input_date、 '%のM')THEN 1 \t \t 07〜12 END)II AS、 SUBSTRING_INDEX(qurum1、AS '|'、1)AS first_part、 SUBSTRING_INDEX (qurum1、 '|'、-1)second_partとして FROM qurum AS qur INNER JOIN(SELECT id、qurum1、input_date FROM DATA)AS aa qur.qurum_id = aa.qurum1 ON \t \t \t WHERE DATE_FORMAT(aa.input_date、 '%Y')=このようqurum_id' BY qurum_id ORDER BY 2017 GROUP? –

+0

http://chat.stackoverflow.com/rooms/141896/mysql-explode –

+0

qurum1にもう1桁を追加しました(今は1 | 6 | 7です)。行が見えなくなりました –

関連する問題