У меня трудности с этим.Этот запрос прекрасно работал при расчете сумм, пока я не поместил первое внутреннее объединение. В таблице tbl_companies есть несколько записей для каждой компании, например, таблица может выглядеть так:
priority company externalip
1 bla 9.9.9.9
1 bla 3.3.3.3
1 company2 3.56.6.6
В приведенном ниже запросесумма (которая вычисляется как TotalWithoutNew и TotalAllId удваивается, когда существует более одной записи для компании, и утраивается, если их три, и т. д. Я хочу сделать это просто вернуть приоритет из таблицы tbl_companies
SELECT b.company,
b.priority,
i.concom,
Coalesce (SUM(CASE
WHEN c.category_id = '30' THEN 0
ELSE t.logmins
END), 0) AS totalwithoutnew,
Coalesce (SUM(t.logmins), 0) AS totalallid
FROM helpdesk3.dbo.inquiry AS i
INNER JOIN [Check].[dbo].[tbl_companies] AS b
ON i.concom = b.company COLLATE sql_latin1_general_cp1_ci_as
INNER JOIN timelog AS t
ON t.inquiry_id = i.inquiry_id
INNER JOIN prod AS p
ON i.prod_id = p.prod_id
INNER JOIN category AS c
ON p.category_id = c.category_id
WHERE ( Datepart(yyyy, escdate) = 2011 )
GROUP BY i.concom,
b.company,
b.priority
ORDER BY totalwithoutnew DESC,
b.priority DESC