Я работал над запросом с одноранговым узлом, и он возвращал некоторые необычные числа. Запрос представляет собой отчет о производительности. Я пытаюсь суммировать все оплачиваемые единицы для определенного конечного пользователя, сравнивать это общее с единственным ожидаемым значением и затем вычислять разницу между этими двумя числами в течение 1 недели. Вот то, что мы придумали до сих пор:Общее количество запросов SQL к одному значению
SELECT
Employees.emp_id,
Employees.last_name+', '+Employees.first_name as staff_name,
SUM(VisitQuery.billed_value)/60 AS billed_value,
SUM(StandardQuery.num8) as expected_value
FROM
Employees
INNER JOIN
(
SELECT
ClientVisit.duration AS billed_value,
ClientVisit.emp_id,
ClientVisit.client_id
FROM
ClientVisit
WHERE
ClientVisit.non_billable = 0 AND
ClientVisit.rev_timeout >= @param1 AND
ClientVisit.rev_timeout <= @param2
) VisitQuery
ON VisitQuery.emp_id = Employees.emp_id
INNER JOIN
(
SELECT DISTINCT
CaseloadQuery.emp_id,
ClientsExt.num8
FROM
(
SELECT
ClientVisit.duration AS billed_value,
ClientVisit.emp_id,
ClientVisit.client_id
FROM
ClientVisit
WHERE
ClientVisit.non_billable = 0 AND
ClientVisit.rev_timeout >= @param1 AND
ClientVisit.rev_timeout <= @param2
) CaseloadQuery
INNER JOIN ClientsExt
ON CaseloadQuery.client_id = ClientsExt.client_id
) StandardQuery
ON Employees.emp_id = StandardQuery.emp_id
GROUP BY
Employees.emp_id,
Employees.last_name+', '+Employees.first_name`enter code here`
Ответный выходит глядя, как это:
emp_id staff_name billed_value expected_value
X X 74 231
XX XX 108 279
XXX XXX 19 72
Кто-нибудь есть какие-либо мысли? Ожидаемое значение должно быть не выше, чем 40 часов в неделю.
могли бы вы предоставить диаграмму классов/домен? это было бы очень полезно, приветствия – Tatranskymedved
Прошу прощения, но я относительно новичок в SQL, поэтому я не совсем уверен, что вы просите меня. –
В таблице 'ClientVisit' может ли один и тот же сотрудник (' emp_id') иметь несколько строк, которые приводят к нескольким значениям 'client_id'? – leeyuiwah