1
我试图在接下来的30天内为每个用户在某个组中工作的总时间。我对MySQL并不擅长,所以很多这可能是错误的。这是来自JIRA数据库。MySQL Query Multiple Joins复制每行的数据? JIRA数据库
SELECT DISTINCT cu.display_name AS 'Associate', sum(wl.timeworked/3600) AS '30 Days' FROM worklog AS wl, cwd_user AS cu INNER JOIN cwd_membership AS cm ON cu.directory_id=cm.directory_id AND cu.lower_user_name=cm.lower_child_name AND cm.membership_type='GROUP_USER' INNER JOIN worklog ON worklog.AUTHOR = cu.user_name WHERE cm.lower_parent_name='atl_servicedesk_it_agents' AND wl.STARTDATE BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) ORDER BY cu.last_name;
现在它只是显示的第一用户总和的一切在为大家的工作时间命名。这显然不是我想要的......如果我从时间工作中删除总和,它显示大约一半来自该组的用户,但每个用户的时间工作值为16小时,这是不正确的。只有一个用户在接下来的30天内有任何价值,并且是16个小时,所以出于某种原因它正在复制这些信息。 任何想法?
我试过'GROUP BY cu。 display_name'(或更好的用户主键),并将其放在WHERE子句之后,并删除'DISTINCT',这是否会给出任何不同的结果? –
这样做现在确实显示了所有的名字,367的136个名字。但是,当这些名字实际上只有一行时,它们的名字仍然有随机时间,因为只有一个用户在接下来的30天内记录了时间。我不确定是否我的计算部分是根据任何人的数字计算的总和错误的,而不是名称相同。 – Cole