这类似于我最近提出的另一个问题,但更进一步。
我之前的问题询问了如何tblCurrent
在从tblHistorical
.
我现在想知道如何做同样的事情,但要添加两个额外的列,这些列根据同一个tblCurrent
表中的特定条件计算记录。
我有两张桌子:
tblCurrent
Ref | CustomerID | Category | Subcategory | Resolved | ... .. .. . . |
X001 | 001 | Sales | Major | TRUE
X002 | 002 | Sales | Minor | FALSE
X003 | 001 | Marketing | Corp | TRUE
tblHistorical
Ref | ... .. .. . . | Missing | Matched
X001 | ... .. .. . . | TRUE | FALSE
X001 | ... .. .. . . | FALSE | FALSE
X002 | ... .. .. . . | TRUE | TRUE
X002 | ... .. .. . . | TRUE | FALSE
X003 | ... .. .. . . | FALSE | FALSE
X003 | ... .. .. . . | TRUE | TRUE
Ref 在 tblCurrent 中是唯一的,但在 Historical 中不是。
我被建议并成功地为上一个问题解决了以下问题:
SELECT a.ref,
SUM(CASE WHEN b.Missing = 'True' THEN 1 ELSE 0 END) missingTrue,
SUM(CASE WHEN b.Missing = 'False' THEN 1 ELSE 0 END) missingFalse,
SUM(CASE WHEN b.Matched = 'True' THEN 1 ELSE 0 END) matchTrue
FROM tblCurrent a
LEFT JOIN tblHistorical b
on a.ref = b.ref
GROUP BY a.ref
问:如何添加两个额外的列(到上述解决方案):
tblCurrent
匹配相同的记录数CustomerID
+Category
(但不是当前记录)AND Resolved=False。tblCurrent
匹配相同CustomerID
+Category
+的记录数SubCategory
(但不是当前记录)AND Resolved=False。