Как объединить несколько SQL запросов на одну таблицу в один отчет - PullRequest
3 голосов
/ 12 марта 2020

Я посмотрел на подзапросы, союзы и объединения. Похоже, они не могут произвести то, что я ищу, или, может быть, я не правильно их использую.

Я использую SQL Server 2016.

Вот что Я имею. Одна таблица (StoreScan) со строкой для номера магазина, а затем группа других строк с собранными данными по каждому магазину.

Пример:

StoreNumber, uptime, service1status, service2status

Пример данных:

Storenumber     uptime    service1status    service2status  
-----------------------------------------------------------
 1              10        Running           Running
 18             25        Running           Stopped 
 88             3         Stopped           Running
 90             1         Running           Running
 103            5         Stopped           Running
 553            2         Running           Stopped
 989            2         Running           Running

У меня есть несколько небольших запросов, подобных этому:

select storenumber, uptime 
from storescan 
where uptime > 7


select storenumber, service1status 
from storescan 
where service1status = 'stopped'

Я бы хотел объединить их все в один запрос для отчета, который будет выглядеть примерно так:

Storenumber     uptime    service1status    service2status  
-----------------------------------------------------------
1               10  
18              25  
88                        stopped  
103                       stopped  
553                                         stopped  
18                                          stopped 

1 Ответ

1 голос
/ 12 марта 2020

Do условная агрегация:

select Storenumber, 
       max(case when uptime > 7 then uptime end) as uptime,
       max(case when service1status = 'stopped' then service1status end),
       max(case when service2status = 'stopped' then service2status end)
from storescan ss 
group by Storenumber;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...