SQL: сумма значений строки двух столбцов - PullRequest
1 голос
/ 31 октября 2019

Ниже приведен запрос, который я подготовил для извлечения подробностей из БД.

select vUI.ArticleID , vUCS.NumInstalled,vUCS.NumPresent, vUCS.NumPending, vUCS.NumFailed, vUCS.NumNotApplicable , vUCS.NumMissing, vUCS.NumUnknown , vUCS.NumTotal
from v_Update_DeploymentSummary_Live vUCS 
inner join v_UpdateInfo vUI
    on vUCS.CI_ID=vUI.CI_ID
where vUCS.CollectionID='RA00686' --or  vUCS.CollectionID='RA00785'

Есть несколько вещей, которых я пытался достичь, но получаю трудное время.

Ниже приводитсявыходные данные.

enter image description here

Я надеюсь, что скриншот должен быть виден. но в случае, если он отсутствует, я хотел бы добавить значения vUCS.NumInstalled и vUCS.NumPresent , поскольку оба показывают данные для успеха.

Любой Посоветуйте для этого, как я могу добавить значениеиз двух столбцов подряд.

Мой запрос немного медленный из-за vUCS.CollectionID = 'RA00686' или vUCS.CollectionID = 'RA00785' Я пытаюсь изменить его, как ондля запуска требуется более 3 минут.

токовый выход

ArticleID   NumInstalled    NumPresent  NumPending
4484107         2               16           2
4519998         0              0             0
4521860        7573           7738          13

ожидаемый выход

ArticleID   NumInstalled    NumPending
4484107         18            2
4519998         0             0
4521860        15311          13

1 Ответ

1 голос
/ 31 октября 2019

Попробуйте следующее:

select vUI.ArticleID , 
    ISNULL(vUCS.NumInstalled,0)+ISNULL(vUCS.NumPresent,0) AS NumInstalled,
    vUCS.NumPending
from v_Update_DeploymentSummary_Live vUCS 
inner join v_UpdateInfo vUI
    on vUCS.CI_ID=vUI.CI_ID
where vUCS.CollectionID='RA00686' 

И вам нужно создать Index для столбца vUCS.CollectionID, чтобы повысить производительность запроса.

CREATE NONCLUSTERED INDEX NCX_v_Update_DeploymentSummary_Live_Indx1 ON v_Update_DeploymentSummary_Live(CollectionID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...