我需要幫助寫一個簡單的程序。讓我解釋我想要做的事情。是否可以在一個SQL請求中獲得多個COUNT?
我有3個表
- tJobOffer
- TApplication的
- tApplicationStatus
我想創建返回我tJobOffer列表與不同的統計信息的程序這個tJobOffer。 tApplicationStatus鏈接到與tJobOffer鏈接的tApplication。應用程序可以是候選人/接受/ REFUSED/IGNORED/...
我創造了這個查詢:
SELECT
[T].[JobOfferId],
[T].[JobOfferTitle],
COUNT([A].[ApplicationId]) AS [CandidateCount]
FROM [tJobOffer] AS [T]
LEFT JOIN [tApplication] AS [A]
INNER JOIN [tApplicationStatus] AS [S]
ON [S].[ApplicationStatusId] = [A].[ApplicationStatusId]
AND [S].[ApplicationStatusTechnicalName] = 'CANDIDATE'
ON [A].[JobOfferId] = [T].[JobOfferId]
GROUP BY
[T].[JobOfferId],
[T].[JobOfferTitle]
ORDER BY [T].[JobOfferTitle] ;
結果是
> 52ED7C67-21E1-49BB-A1F8-0601E6EED1EA Announce a 0
> F26B228D-0C81-4DA8-A287-F8F997CC1F9C Announce b 0
> 9DA60B23-F113-4C7F-9707-2B90C1556D5D Announce c 2
> 258E11A7-79C1-47B6-8C61-413AA54E2360 Announce d 0
> DA582383-5DF4-4E1D-837C-382371BDEF57 Announce e 1
的結果是正確的。我得到了我的工作狀態候選人的統計數據。我有2名候選人宣佈c和1名候選人宣佈e。如果我將字符串'CANDIDATE'更改爲'ACCEPTED'或'REFUSED',我可以獲得有關這些狀態的統計信息。 是否可以在一個請求中獲取所有內容?
喜歡的東西
> 52ED7C67-21E1-49BB-A1F8-0601E6EED1EA Announce a 0 0 2
> F26B228D-0C81-4DA8-A287-F8F997CC1F9C Announce b 0 0 1
> 9DA60B23-F113-4C7F-9707-2B90C1556D5D Announce c 2 0 0
> 258E11A7-79C1-47B6-8C61-413AA54E2360 Announce d 0 0 0
> DA582383-5DF4-4E1D-837C-382371BDEF57 Announce e 1 1 0