我坚持从表中获取一些数据。
Project有多个产品,但其中一个是Primary(PrimaryProduct)。
PrimaryProduct =产品。
产品是Estimate的一部分。
每个项目都安排分配给船员。
基本上,我可以带队员的主表是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
答案 0 :(得分:0)
以下将为您提供主要产品的船员ID。您可以根据需要加入其他表格。
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
答案 1 :(得分:0)
<强>更新:强>
@Bhaskar,这是对我有用的查询:
tblProjectEstimate as e on tblServiceTicket.ProjectID = e.ProjectID and e.IsPrimary = 'True' left join
tblCrew on e.CrewID = ptsweb.tblCrew.CrewID