【发布时间】:2018-08-10 22:49:55
【问题描述】:
我有一个查询用于显示队列中的信息,其中部分信息显示了属于父实体(更改)的子实体(包和实验室)的数量。但是,它们不是显示每种类型孩子的个体计数,而是彼此相乘。
在下面的例子中,应该有 3 个实验室和 18 个包,但是彼此相乘,输出是 54 个。
以下是查询的违规部分。
SELECT cef.ChangeId, COUNT(pac.PackageId) AS 'Packages', COUNT(lab.LabRequestId) AS 'Labs'
FROM dbo.ChangeEvaluationForm cef
LEFT JOIN dbo.Lab
ON cef.ChangeId = Lab.ChangeId
LEFT JOIN dbo.Package pac
ON (cef.ChangeId = pac.ChangeId AND pac.PackageStatus != 6 AND pac.PackageStatus !=7)
WHERE cef.ChangeId = 255
GROUP BY cef.ChangeId
我觉得这很明显,但我没有想到如何解决它,因此这两个计数彼此独立,就像我应该的那样。在我的任何研究中似乎也没有这样的场景。谁能指导我正确的方向?
【问题讨论】:
标签: sql sql-server tsql aggregate-functions