如何创建SQL查询

时间:2012-03-06 05:25:15

标签: sql sql-server

我在这样的表中有数据(结果/输出):

Project code  project name    associates                   time efforts in days
1             Analytics       amol,manisha,sayali,pooja    (21+17+20+17)=57

我需要计算几天的时间。我已经完成了2月份的工作,并且我已经在那个月加入了每个人工作的日子。我的意思是我所有同事的所有日子都减去了缺席。

所以,我需要通过SQL查询来做到这一点。

我有一张表,其中包含所有带日期的员工。

像这样:

UID username date

那么任何人都可以给我一个如何做到这一点的建议吗?

2 个答案:

答案 0 :(得分:0)

如果有一个单独的表来存储projectid,团队成员ID以及他/她在几天内的努力将是一个更好的设计。这样你就可以编写一个简单的连接查询来实现你想要的。

答案 1 :(得分:0)

这是我要做的。更改表格,以便:

项目

project_code  project_name
1             Analytics   

用户

UID username date
1   amol
2   manisha
3   sayali

projects_users

project_code  uid    effort
1             1      21
1             2      17
1             3      20

现在您可以像这样查询您要求的结果:

SELECT 
  p.project_code,
  p.project_name, 
  GROUP_CONCAT(DISTINCT u.username SEPARATOR ', ') AS associates,
  SUM(pu.effort) effort 
JOIN users AS u
JOIN projects_users AS pu
FROM projects p
GROUP BY project_code