在SQL报表构建器中创建行值的总和

问题描述 投票:0回答:1

我需要使用SQL报表构建器在SCCM中创建报表。当前,报告在单独的行中显示每个客户端上每个用户的每个应用程序(很好)。

但是我还需要一个函数,该函数可以向我显示每个应用程序的启动计数总数(由ID号标识)。

当前报告输出:

Output of the report

所以我需要的最终结果应该是:

ID        Manufacturer        Name         Filename          LaunchCountTotal
32        7-zip               7-zip        7z.exe            543

当前报告构建器的布局:

Current report builder layout

这是用于数据集的查询:

select diin_applications_table.manufacturer, diin_applications_table.id, diin_applications_table.name, diin_applications_table.version, diin_applications_table.filename, RecentlyUsedApps_DATA_prod.LaunchCount00, RecentlyUsedApps_DATA_prod.LastUsedTime00, RecentlyUsedApps_DATA_prod.LastUserName00, System_DATA_prod.Name0
from diin_applications_table
INNER JOIN RecentlyUsedApps_DATA_prod ON diin_applications_table.Filename=RecentlyUsedApps_DATA_prod.ExplorerFileName00
INNER JOIN System_DATA_prod ON
RecentlyUsedApps_DATA_prod.MachineID=System_DATA_prod.MachineID
sql sql-server reportbuilder3.0
1个回答
0
投票

您应该可以通过CTE实现此目标,如下所示:

with cte as (
select diin_applications_table.manufacturer, diin_applications_table.id, diin_applications_table.name, diin_applications_table.version, diin_applications_table.filename, RecentlyUsedApps_DATA_prod.LaunchCount00, RecentlyUsedApps_DATA_prod.LastUsedTime00, RecentlyUsedApps_DATA_prod.LastUserName00, System_DATA_prod.Name0
from diin_applications_table
INNER JOIN RecentlyUsedApps_DATA_prod ON diin_applications_table.Filename=RecentlyUsedApps_DATA_prod.ExplorerFileName00
INNER JOIN System_DATA_prod ON
RecentlyUsedApps_DATA_prod.MachineID=System_DATA_prod.MachineID
)

select
    ID
,   Manufacturer
,   [Name]
,   [FileName]
,   sum(LaunchCount) LaunchCountTotal
from    cte
group by    ID
,           Manufacturer
,           [Name]
,           [FileName]  

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.