好了,我在这里处理4桌 -SQL语句的帮助
项目成员,迭代和ProjectIterationMembers。
当我创建新项目的详细信息,我将其写入到Project
表,我也指定迭代(start date
,end date
- 一个项目由至少一个迭代的,但更多的迭代以后可以添加) 。从Members
表成员现在写入ProjectIterationMembers
表作为他们被分配到迭代。
下面的SQL语句检索所有项目,为公司 -
项目名称,则显示项目经理和项目状态。
但是,我想要做的只是显示特定成员分配给的项目。当我尝试传递MemberID时,没有检索到任何结果。
SELECT DISTINCT(Project.ProjectName), Project.ProjectID, Project.Status,
Project.CompanyID, Project.StartDate, m.MemberID,
m.FirstName + ' ' + m.LastName AS ProjectManager
FROM Project, Member m, ProjectIterationMember, Iterations i WHERE
m.CompanyRole = 'Project Manager' AND Project.CompanyID = '" + co_id + "' AND
m.MemberID = ProjectIterationMember.MemberID AND i.ProjectIterationID =
ProjectIterationMember.ProjectIterationID AND i.ProjectID = Project.ProjectID
ORDER BY Project.StartDate DESC
我的表的结构如下:
Project Iterations ProjectIterationMember Member
=============== ======================== ========================= ===========
ProjectID (PK) ProjectIterationID (PK) ProjectIterationMemberID MemberID
CompanyID ProjectID ProjectIterationID FirstName
ProjectName StartDate MemberID LastName
StartDate EndDate
EndDate
Description
请问您是通过项目会员ID是CompanyRole =“项目经理”,因为你只检索Proejct经理。 – 2011-02-15 17:24:49
我要显示在该项目的项目经理的名字,但我也想只显示分配给特定成员登录项目 - 所以我需要通过MEMBERID作为一个变量。我该如何解决这个问题? – MiziaQ 2011-02-15 17:28:50
你需要加入ProjectIterationMember表,然后两次,一次获得经理的名字,一次只能得到行匹配登录的用户。请上帝用连接重写,而不是用逗号分隔的表格和条件。你折磨自己和其他人有阅读此代码(如你的同事/接班人)。 – 2011-02-15 17:31:12