我需要帮助来编写一个简单的程序。让我解释一下我想要做什么。
我有 3 张桌子
- tJobOffer
- t应用
- tApplicationStatus
我想创建一个程序,向我返回一个 tJobOffer 列表,其中包含响应此 tJobOffer 的候选人数量。Candidate 是我的表 tApplicationStatus 的状态。此表链接到链接到 tJobOffer 的 tApplication。申请可以是候选/接受/拒绝/忽略/...
我创建了这个查询:
SELECT
[T].[JobOfferId],
[T].[JobOfferTitle],
COUNT([A].[ApplicationId]) AS [CandidateCount]
FROM [tJobOffer] AS [T]
LEFT JOIN [tApplication] AS [A]
ON [A].[JobOfferId] = [T].[JobOfferId]
LEFT JOIN [tApplicationStatus] AS [S]
ON [S].[ApplicationStatusId] = [A].[ApplicationStatusId]
AND [S].[ApplicationStatusTechnicalName] = 'CANDIDATE'
GROUP BY
[T].[JobOfferId],
[T].[JobOfferTitle]
--[A].[ApplicationStatusId]
ORDER BY [T].[JobOfferTitle]
结果是
> 52ED7C67-21E1-49BB-A1F8-0601E6EED1EA Annonce 1 0
> F26B228D-0C81-4DA8-A287-F8F997CC1F9C Annonce 1b 0
> 9DA60B23-F113-4C7F-9707-2B90C1556D5D Announce 25 2
> 258E11A7-79C1-47B6-8C61-413AA54E2360 Announce 3 0
> DA582383-5DF4-4E1D-837C-382371BDEF57 Announce 6 2
这是不正确的,因为我只有 1 个 Announce 6 候选人。如果设置我的行
--AND [S].[ApplicationStatusTechnicalName] = 'CANDIDATE'
在评论中结果是一样的。我的查询似乎忽略了这一行。怎么了?
编辑 -
我的正确结果应该是
> 52ED7C67-21E1-49BB-A1F8-0601E6EED1EA Annonce 1 0
> F26B228D-0C81-4DA8-A287-F8F997CC1F9C Annonce 1b 0
> 9DA60B23-F113-4C7F-9707-2B90C1556D5D Announce 25 2
> 258E11A7-79C1-47B6-8C61-413AA54E2360 Announce 3 0
> DA582383-5DF4-4E1D-837C-382371BDEF57 Announce 6 1