首页 > 解决方案 > 在 SQL 中将两列值相加

问题描述

我创建了一个查询来获取 SCCM 中的 Win 7 和 Win 10 计数。一切正常,但输出并没有按照我想要的方式进行。

电流输出

DeploymentName  CollectionName  Available   Deadline    ReportTime  W10     W7
WKS 2019-10     WKS 2019-10     20:23.0     00:00.0      18:00.0    14116   0
WKS 2019-10     WKS 2019-10     20:23.0     00:00.0      18:00.0      27    0
WKS 2019-10     WKS 2019-10     20:23.0     00:00.0      18:00.0      0     2886
WKS 2019-10     WKS 2019-10     20:23.0     00:00.0      18:00.0      0      1

预期产出

DeploymentName  CollectionName  Available   Deadline    ReportTime  W10     W7
WKS 2019-10     WKS 2019-10     20:23.0     00:00.0      18:00.0    14143   2887

我创建的查询。

SELECT 
CIA.AssignmentName as DeploymentName, CIA.CollectionName as CollectionName, CIA.CreationTime as Available,
CIA.EnforcementDeadline as Deadline, CIA.StartTime as ReportTime, --OPSYS.Caption0 as [Operating System],
--COUNT(*) AS 'Count' ,
sum ( CASE 
      WHEN  OPSYS.Caption0 = 'Microsoft Windows 10 Enterprise' or OPSYS.Caption0 = 'Microsoft Windows 10 Pro' THEN  1 else 0
      END  ) As 'W10',
sum ( CASE 
      WHEN  OPSYS.Caption0 = 'Microsoft Windows 7 Enterprise' or OPSYS.Caption0 = 'Microsoft Windows 7 Entreprise' THEN  1 else 0
      END  ) As 'W7'

FROM v_GS_OPERATING_SYSTEM  OPSYS 
inner join V_R_System  sys on OPSYS.ResourceID=sys.ResourceID
Inner join v_FullCollectionMembership FCM on FCM.ResourceID = SYS.ResourceID
--Inner join v_Collection COL on fcm.CollectionID =  col.CollectionID
inner join v_CIAssignment CIA on CIA.CollectionID = FCM.CollectionID
WHERE
CIA.AssignmentName =  'WKS 2019-10 '
group by  CIA.AssignmentName, CIA.CollectionName, CIA.CreationTime,
CIA.EnforcementDeadline, CIA.StartTime, OPSYS.Caption0

我在这里做错了什么?

标签: sqlsql-server

解决方案


从 中删除标题GROUP BY

group by CIA.AssignmentName, CIA.CollectionName, CIA.CreationTime,
        CIA.EnforcementDeadline, CIA.StartTime

推荐阅读