我坚持从表中获取一些数据。
项目有多个产品,但一种是主要产品(主要产品)。
priendar product =product。
产品是估计的一部分。
每个项目都计划分配给机组。
基本上,从我可以服用crewid的主表是tblprojectlabourschedule和projectestimateId。
因此,我需要让分配给该项目的船员,但仅用于主要产品。我的查询已经为该项目带来了主要产品,但我无法吸引机组人员。我当前的脚本是波纹管,但现在我得到了分配给该项目的所有机组人员(主要 辅助产品):
这是我的表格:
tblProject:
ProjectID
PrimaryProductID
tblProduct:
ProductID
tblProjectEstimate:
ProjectEstimateID
ProjectID
EstimateID
CrewID
tblProjectLabourSchedule:
ProjectLabourScheduleID
ProjectID
ProjectEstimateID <<
CrewLeaderID
tblCrew:
CrewID
FirstName
tblServiceTicket:
ServiceTicketID
ProjectID
tblEstimateDetail:
EstimateDetailID
EstimateID
ActivityID
ProductID
tblCrewLeaderMember:
CrewLeaderMemberID
CrewLeaderID
CrewID
脚本:
SELECT tblProjectLabourSchedule.CrewLeaderID
FROM tblServiceTicket INNER JOIN
//gets primary product for the project
tblProject on tblServiceTicket.ProjectID = tblProject.ProjectID inner join
tblProduct on tblProject.PrimaryProductID = tblProduct.ProductID
/// gets crews for the products
tblProjectEstimate on tblServiceTicket.ProjectID = tblProjectEstimate.ProjectID inner join
tblProjectLabourSchedule on tblProjectEstimate.ProjectEstimateID = tblProjectLabourSchedule.ProjectEstimateID
以下将为您提供仅针对主要产品的crewid。您可以根据需要加入其他表。
SELECT e.CrewID
FROM tblProjectEstimate e
INNER JOIN tblProject p ON p.ProjectID = e.ProjectID
INNER JOIN tblEstimateDetail d ON e.ProjectEstimateID = d.EstimateID AND d.ProductID = p.PrimaryProductID
更新:与tblestimatedEtail一起使用左连接,无论主要产品如何,都将列出所有项目估计。
您可以尝试一下吗?这将排除主要产品与估计项目不匹配的任何估计细节。
FROM
tblServiceTicket s
INNER JOIN tblProjectEstimate e on s.ProjectID = e.ProjectID
left join tblProject as p ON p.ProjectID = e.ProjectID
left join tblEstimateDetail as c ON e.ProjectEstimateID = c.EstimateID AND c.ProductID = p.PrimaryProductID
WHERE c.ProjectEstimateID IS NOT NULL
更新:
@bhaskar,这是对我有用的查询:
tblProjectEstimate as e on tblServiceTicket.ProjectID = e.ProjectID and e.IsPrimary = 'True' left join
tblCrew on e.CrewID = ptsweb.tblCrew.CrewID