字段 为 外键ID集合(可重复列),链表查询 count,sum等函数查询

t 列为 ID 集合

对应 B表 主键列
想根据 ID 查询 sum(time) time 计算 2016-12 所用时间


sql :
SELECT A.date,SUM((LENGTH(A.t)-LENGTH(REPLACE(A.t,B.ranksetid,'')))*B.sumtime)AS time FROM(SELECT DATE_FORMAT(s.starttime, '%Y-%m') AS date, t
FROM sys_onduty s WHERE s.staffid = 74 GROUP BY date ) A
INNER JOIN (SELECT ranksetid,
IF(a<0,a +24,a) AS sumtime FROM(
SELECT ranksetid,(RIGHT(starttime,5) - LEFT(starttime,5)) as a
FROM sys_rankset
WHERE sys_rankset.iseffective = 1)C) B
ON FIND_IN_SET(B.ranksetid,A.t) GROUP BY A.date

统计sum:

猜你喜欢

转载自blog.csdn.net/zsm136767349700/article/details/64125689
今日推荐