-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组关联的所有日期串在一起。您可以使用 aGROUP_CONCAT()和几个CONCAT_WS()concatenations来做到这一点。

内部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 回答