-1
У меня есть запрос, чтобы найти общий счет каждого работника. Когда я запускаю запрос, результат outCount ошибочен. Я не совсем уверен, что я ошибаюсь. Любые предложения были бы замечательными.Ошибка подсчета подзапроса SQL
SELECT
r1.RegionID,
r1.rDate,
r1.tCount,
r1.sCount,
r1.outCount,
r1.cm,
r1.sCalc + r1.oCalc + r1.tCalc + r1.cmCalc AS dayScore,
r1.createPID
FROM (SELECT
q1.RegionID,
ROUND(q1.tCount * 0.363636364, 9) AS tCalc,
ROUND(q1.sCount * 0.181818182, 9) AS sCalc,
ROUND(q1.outCount * 0.090909091, 9) AS oCalc,
ROUND(q1.cm * 0.363636364, 9) AS cmCalc,
q1.rDate,
q1.tCount,
q1.sCount,
q1.outCount,
q1.cm,
q1.createPID
FROM (SELECT
q1.RegionID,
q1.rDate,
q1.tCount,
q1.sCount,
q1.outCount,
q1.cm,
q1.createPID
FROM (SELECT
SecurityPrincipal.RegionID,
CONVERT(NVARCHAR, Ticket.dtCreate, 107) AS rDate,
COUNT(Ticket.ticketID) AS tCount,
COUNT(SRO.SROID) AS sCount,
COUNT(o.NoteID) AS outCount,
COUNT(cm.NoteID) AS cm,
Ticket.createPID
FROM CDOC.rpt.Ticket
LEFT OUTER JOIN CDOC.rpt.SRO
ON SRO.ticketID = Ticket.ticketID
LEFT OUTER JOIN (SELECT
Notes.NoteID,
Notes.ticketID,
Notes.noteCategoryID
FROM CDOC.rpt.Notes
WHERE Notes.noteCategoryID = '24') o
ON o.ticketID = Ticket.ticketID
LEFT OUTER JOIN (SELECT
Notes.NoteID,
Notes.ticketID
FROM CDOC.rpt.Notes
WHERE Notes.noteSubCategoryID = '13'
OR Notes.noteSubCategoryID = '16'
OR Notes.noteCategoryID = '22') cm
ON cm.ticketID = Ticket.ticketID
INNER JOIN CDOC.rpt.SecurityPrincipal
ON SecurityPrincipal.pid = Ticket.createPID
GROUP BY CONVERT(NVARCHAR, Ticket.dtCreate, 107),
SecurityPrincipal.RegionID,
Ticket.createPID) q1) q1) r1
Было бы полезно, если вы можете предоставить схему таблицы, выборочные данные, ожидаемый результат и неверный результат. – ydoow