我正在使用存储过程,其中包含以下代码:
UPDATE s
SET EstimatedEffort = IsNull(s.EstimatedEffort, 0) + IsNull(sq.EstimatedEffort, 0),
EstimatedValue = IsNull(s.EstimatedValue, 0) + IsNull(sq.EstimatedValue, 0)
FROM #Story s
JOIN (SELECT ji.ProjectID,
ji.ParentIssueID,
sum(ji.OriginalEstimate)
* IsNull(pc.OverrideRate, c.DefaultRate) as EstimatedValue,
sum(ji.OriginalEstimate) as EstimatedEffort
FROM JiraIssues ji
LEFT JOIN ProjectComponents pc
ON ji.ProjectID = pc.ProjectID
and ji.ComponentID = pc.ComponentID
LEFT JOIN Components c
ON ji.ComponentID = c.ComponentID
WHERE ji.ProjectID = 12
and ji.JiraIssueTypeID = 2
GROUP BY ji.ProjectID,
ji.ParentIssueID,
pc.OverrideRate,
c.DefaultRate) sq
ON s.ProjectID = sq.ProjectID 和s.IssueID = sq.ParentIssueID
在这里,我有一个临时表 #Story ,我试图加入来自子查询的结果。
执行此操作后,我想更新临时表上的两列(EstimatedEffort和EstimatedValue)的值,以便相同ProjectID的所有值都应该相加。我可以填充两列,但是如果子查询结果中的同一ProjectID列有多行,则只有第一行被添加到#Story表中。
有没有办法可以从子查询结果中添加特定ProjectID的所有值,并将它们存储在#Story表中?
答案 0 :(得分:1)
在子查询中,您按4列分组(ji.ProjectID,ji.ParentIssueID,pc.OverrideRate,c.DefaultRate)。您应该只分组2列 - ji.ProjectID,ji.ParentIssueID。