간단한 절차를 작성하는 데 도움이 필요합니다. 제가하려고하는 것을 설명해 드리겠습니다.LEFT JOIN SQL 쿼리에 대한 도움이 필요합니다.
나는 3 개 테이블
- tJobOffer
- TApplication이
- tApplicationStatus이
내가 반응 후보의 수에 나에게 tJobOffer의 목록을 반환하는 프로 시저를 만들 싶습니다 이 tJobOffer에게. 응시자는 내 테이블 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]
결과는 내가 단 1을 가지고 있기 때문에
> 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
이 정확하지 않은 것입니다 : 응용 프로그램은 후보자/ACCEPTED/모름/무시한/...
내가이 쿼리를 생성 할 수 있습니다 발표 할 후보자 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
훨씬 더 아래 시도 : D' –
왜'[tApplicationStatus]으로 가입 [S]'당신이있는 경우 어디서나 사용하지 않습니까? –