Как я могу заказать по сумме трех столбцов из разных таблиц? - PullRequest
0 голосов
/ 06 января 2020
select username,
(select COUNT(OpenUser) from TIcket t with(nolock) where t.OpenUser = u.UserName and cast(t.CompletedDate as date) = cast(getdate() as date) and t.IssueClass = 58) as ServiceNote,
(select COUNT(AssignUser) from TIcket t with(nolock) where ((t.AssignUser = u.UserName and t.Status = 1) and t.IssueClass != 58)) as status1,
(select COUNT(PickUpUser) from TIcket t with(nolock) where ((t.PickUpUser = u.UserName and t.Status = 2) and t.IssueClass != 58)) as status2
  from users u
  where isinactive = 0
  and UserLevel > -1 and First_Name != '' 
  and center_id = '100'

Я сделал запрос для моей программы. И я хочу заказать по сумме трех полей ServiceNote, status1, status2. Я пытался сделать заказ, используя «Сумма» (например, заказ по (ServiceNote, status1, status2), но он не работает.

1 Ответ

1 голос
/ 06 января 2020

Разве это не работает?

order by (serviceNote + status1 + status2)

Это работает в большинстве баз данных, но не на SQL Сервере. Для этого используйте CTE или подзапрос:

with cte as (
      <your query here>
     )
select cte.*
from cte
order by (serviceNote + status1 + status2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...