34,588
社区成员
发帖
与我相关
我的任务
分享
SELECT
User.Id,
User.Name as 用户名,
User.TaskMoney as 任务金额,
SUM(Project.Money) as 项目总金额
FROM 用户表 as User
LEFT JOIN 项目表 AS Project
ON User.id=Project.UserId AND DATEPART(yyyy,Project.CreateDate)='2014'
WHERE User.TaskYear='2014'
GROUP BY User.Id,User.Name,User.TaskMoney
SELECT
User.Id,
User.Name as 用户名,
User.TaskMoney as 任务金额,
SUM(Project.Money) as 项目总金额
FROM 用户表 as User
LEFT JOIN 项目表 AS Project
ON User.id=Project.UserId
WHERE User.TaskYear='2014' AND DATEPART(yyyy,Project.CreateDate)='2014'
GROUP BY User.Id,User.Name,User.TaskMoney
如果不要第二个AND的条件Project.CreateDate='2014'就可以显示所有用户,因为Left Join以左表为主,但是这个条件又是项目里的日期,所以没有项目记录的就没有这个日期,而造成被过滤掉了。。。