簡単な手順を書くのに助けが必要です。私がやろうとしていることを説明しましょう。
私は3つのテーブルを持っています
- tJobOffer
- t用途
- tApplicationStatus
この tJobOffer に応答した候補者の数を含む tJobOffer のリストを返すプロシージャを作成したいと思います。Candidate は、私のテーブル tApplicationStatus のステータスです。このテーブルは、tJobOffer にリンクされている tApplication にリンクされています。アプリケーションは、CANDIDATE / ACCEPTED / REFUSED / IGNORED / ... のいずれかになります。
このクエリを作成しました:
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
アナウンス 6 の候補は 1 つしかないため、これは正しくありません。
--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