В настоящее время я использую этот оператор SQL, чтобы получить счетчик, который завершил каждую запись (RFI):
SELECT Completed_By, COUNT(DISTINCT Unique_ID) AS RFICount FROM RFI_
WHERE Date_Submitted BETWEEN '20110101' AND '20110630'
GROUP BY Completed_By
Возвращает набор данных, подобный следующему:
Completed_By RFICount
------------ ---------
SMITH, Bob 1
DOE, John 15
WARNER, Jack 11
Вот так я хочу, чтобы это выглядело. Тем не менее, кто-то может быть основным или вторым лицом, которое заполнило или оказало помощь в заполнении записи (RFI). Я хочу показать все это в одном столбце, независимо от того, завершили ли они запись (Completed_By) или помогли с ней (Assisting_Analyst).
Когда я использую следующий оператор SQL, он показывает их как отдельные, когда они должны быть агрегированы:
SELECT Completed_By, Assisting_Analyst, COUNT(DISTINCT Unique_ID) AS RFICount
FROM RFI_ WHERE Date_Submitted BETWEEN '20110101' AND '20110630'
GROUP BY Completed_By, Assisting_Analyst
Возвращает следующий тип вывода:
Completed_By Assisting_Analyst RFICount
------------ ----------------- --------
SMITH, Bob NULL 1
DOE, John NULL 15
WARNER, Jack NULL 7
WARNER, Jack SMITH, Bob 4
Поскольку Боб Смит помогал Джеку Уорнеру с четырьмя записями (RFI), создается отдельная строка. Но я просто хочу, чтобы каждый получил индивидуальный кредит и отобразил его в одном столбце, например:
Completed_By RFICount
------------ ---------
SMITH, Bob 5
DOE, John 15
WARNER, Jack 11
В приведенном выше примере четыре записи, с которыми они работали совместно, зачисляются им обоим. Конечно, это означает, что некоторые записи подсчитываются дважды, но это то, что я хочу для этого приложения.
Я пробовал UNIONS и кучу других вещей, но он либо не дает мне того, что я хочу, так как я хочу, чтобы он отображался, или выдает ошибку без данных. Я знаю, что DISTINCT должен идти, но не уверен, как именно это сделать. Это делается в SQL Server 2008 R2. Помощь