SQL

时间:2019-10-31 10:53:53

标签: sql sql-server

下面是我准备从数据库中获取详细信息的查询。

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 个答案:

答案 0 :(得分:1)

请尝试以下操作:

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)