У меня есть следующее. Но в конечном итоге некоторые из идентификаторов сотрудника пересчитываются дважды. Моя цель состоит в том, чтобы отличать только employeeID
за колонку [UniqueEmployees]
... Может кто-то, пожалуйста, помогите мне?SQL Server: число дубликатов
Это код здесь:
IF OBJECT_ID(N'tempdb..#GG') IS NOT NULL
DROP TABLE #GG
SELECT DISTINCT
[month], vv.Hiremonth,
LoanNumber, vv.EmployeeId,
agentname,
vv.YearsOfService, vv.MonthsofService,
vv.TenureGrouping, vv.TenureMonthGrouping,
manager,
SUM([Call Counts]) as Calls,
SUM(opportunities) as Opportunities,
SUM([Discussed w/Customer]) as [Discussed w/Customer],
SUM(DidNotDiscuss) as [DidNotDiscuss],
SUM(CustomerInterested) as CustomerInterested,
(SELECT COUNT(DISTINCT MGR.EmployeeId)
FROM #MANAGERS MGR
WHERE --EmployeeId = EmployeeId
--and
CAST(CONVERT(datetime, RIGHT(MGR.HireMonth, 4) + LEFT(MGR.HireMonth, 2) + '01') as DATE) <= CAST(CONVERT(datetime, right([Month], 4) + left([Month], 2) + '01') as DATE)
--and MonthsOfService = MonthsOfService
--and YearsOfService = YearsOfService
) as UniqueEmployees
INTO
#GG
FROM
#FINALtemp2b VV
--left join
--(select distinct Employeeid
--from #FINALtemp2b) CC
--on CC.EmployeeId = VV.EmployeeId
GROUP BY
[month], vv.Hiremonth, LoanNumber, vv.EmployeeId,
agentname, vv.YearsOfService, vv.MonthsofService,
vv.TenureGrouping, vv.TenureMonthGrouping, manager
ORDER BY
[month]
Показать образцы данных и ожидаемый результат. \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/), чтобы узнать, как улучшить качество вопроса и получить лучшие ответы. \t [** Как создать минимальный, полный и проверенный пример **] (http://stackoverflow.com/help/mcve) –
'count (distinct ...)' правильный. Тем не менее, вы используете слишком много временных таблиц, о которых мы не знаем. Можете ли вы сократить свой запрос до минимального примера, включая ввод, чтобы показать, что он не работает? –
вы можете добавить employee_id в select и group by it, тогда он покажет, какие из них подсчитываются дважды, и это может дать вам некоторое представление о том, почему их пересчитывают дважды. – user3700389