0
我想顯示的目標達到或沒有類別明智,我沒有得到正確的計數提交鏈接列,提交的鏈接計數出錯了。結果是乘以沒有分配的類別。實際提交鏈接15.但是其顯示15 * 4即60不正確的結果和計數進來sql查詢
我的樣本數據
select CatId,DayName,DayTarget,ProjectID from Tbl_DaySubmission where ProjectID='3'and DayName='FRIDAY'
CatId DayName DayTarget ProjectID
35 Friday 5 3
3 Friday 4 3
6 Friday 5 3
2 Friday 15 3
select LinkId,LnkSubmsnDate,LnkSubmtdBy,ProjectId,CategoryId from tbl_Link where LnkSubmsnDate='2015-10-09'
LinkId LnkSubmsnDate LnkSubmtdBy ProjectId CategoryId
147950 2015-10-09 swapna 3 2
147951 2015-10-09 swapna 3 2
147952 2015-10-09 swapna 3 2
147953 2015-10-09 swapna 3 2
147954 2015-10-09 swapna 3 2
147955 2015-10-09 swapna 3 2
147956 2015-10-09 swapna 3 2
147957 2015-10-09 swapna 3 2
147958 2015-10-09 swapna 3 2
147959 2015-10-09 swapna 3 2
147960 2015-10-09 swapna 3 2
147961 2015-10-09 swapna 3 2
147962 2015-10-09 swapna 3 2
147963 2015-10-09 swapna 3 2
147964 2015-10-09 swapna 3 2
147965 2015-10-09 swapna 3 35
我的查詢
SELECT
c.Categoryname
, ds.DayTarget
, CASE WHEN (COUNT(LinkId) > 0) THEN l.LnkSubmsnDate
ELSE NULL END AS [LnkSubmsnDate]
, CASE WHEN (COUNT(LinkId) > 0) THEN l.LnkSubmtdBy
ELSE NULL END AS [LnkSubmtdBy]
, COUNT(LinkId) AS submittedLinks
, (CASE
WHEN DayTarget=COUNT(LinkId) THEN 'Reached'
WHEN DayTarget-COUNT(LinkId) < 1 THEN 'Reached'
WHEN DayTarget-COUNT(LinkId) >= 1 THEN 'Not Reached'
END) AS performance
FROM tbl_Category AS c
INNER JOIN Tbl_DaySubmission AS ds ON ds.CatId = c.CategoryId
LEFT JOIN (SELECT * FROM tbl_Link WHERE LnkSubmsnDate='2015-10-12' and ProjectId='109' and LnkSubmtdBy='swapna') AS l ON l.ProjectId = ds.ProjectID AND l.CategoryId = ds.CatId
WHERE ds.ProjectID = 109
GROUP BY c.Categoryname, ds.DayTarget, l.LnkSubmsnDate, l.LnkSubmtdBy
ORDER BY l.LnkSubmtdBy
我需要這樣的
Categoryname DayTarget LnkSubmsnDate LnkSubmtdBy submittedLinks performance
Classifieds 15 2015-10-09 swapna 15 Reached
BlogCommenting 5 2015-10-09 swapna 1 Not Reached
ForumSites 4 Not Reached
Directorysites 5 Not Reached
輸出