-2

MySQL に次のフィールドがあります。

rpt_id, rpt_entrydate, rpt_exitdate, rpt_date

これらのフィールドの値は次のとおりです。

1, 2012-11-02, 2012-11-03, 2011-11-26
2, 2011-11-23, 2012-11-16, 2011-11-26
3, 2011-11-25, 2012-11-26, 2011-11-26
4, 2011-10-14, 2012-10-17, 2011-10-13
5, 2011-10-05, 2012-10-09, 2011-10-13
6, 2011-10-15, 2012-10-18, 2011-10-13

結果を次のようにしたいのですが、うまくいきません。

2011-11-25, 2012-11-26, 2011-11-23, 2012-11-16, 2012-11-02, 2012-11-03, 2011-11-26
2011-10-15, 2012-10-18, 2011-10-05, 2012-10-09, 2011-10-14, 2012-10-17, 2011-10-13
4

1 に答える 1

1

rpt_dateグループごとに関連付けられているすべての日付をつなぎ合わせようとしているようです。GROUP_CONCAT()これは、 1 つおよび 2 つのCONCAT_WS()連結で行うことができます。

内側CONCAT_WS()は のペアをrpt_entrydate, rpt_exitdateカンマ区切りの文字列に結合し、外側は文字列とそのグループをCONCAT_WS()ペアにします。GROUP_CONCAT()rpt_date

SELECT
  CONCAT_WS(', ',
    GROUP_CONCAT(
      CONCAT_WS(', ', rpt_entrydate, rpt_exitdate)
    ),  rpt_date
  ) AS datestring
FROM yourtable
GROUP BY rpt_date

http://sqlfiddle.com/#!2/9a07a/5

于 2012-12-15T21:05:15.367 に答える