繁体   English   中英

过滤group_concat的结果,内部联接查询

[英]filtering results of group_concat, inner join query

新手在这里。 下面的代码在返回我想要的结果方面做得很好。 唯一的问题是我无法弄清楚如何仅返回某个日期范围(可在checkdate列中找到)。 我可以通过checkdate日期进行过滤的唯一方法是使用GROUP BY empchecks.checkdate并使用HAVING checkdate> = whatever。 但是我必须GROUP BY employee.enum。 我确定我缺少一些简单的东西。

    SELECT employee_data.a, 
           employees_data.b, employee_data.c, 
           GROUP_CONCAT(empchecks.d 
               ORDER BY empchecks.checkdate 
              SEPARATOR '<br /> ') 
           AS checknum, 
           GROUP_CONCAT(empchecks.checkdate 
               ORDER BY empchecks.checkdate      
              SEPARATOR '<br /> ') 
           AS checkdate, 
      FROM employees 
INNER JOIN empchecks ON employees.enum = empchecks.enum 
  GROUP BY empchecks.enum

您需要添加一个WHERE子句。 还有一个小小的更正AS checkdate校验日期之后的最后一个逗号不应在那里。

SELECT employee_data.a, employees_data.b, employee_data.c, 
       GROUP_CONCAT(empchecks.d ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as checknum, 
       GROUP_CONCAT(empchecks.checkdate ORDER BY empchecks.checkdate SEPARATOR '<br /> ') as checkdate
    FROM employees 
        INNER JOIN empchecks 
            ON employees.enum = empchecks.enum 
    WHERE empchecks.checkdate >= @begin_date
      AND empchecks.checkdate <= @end_date
    GROUP BY empchecks.enum;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM