none
Ajuda com relatório de Software Metering (por período) RRS feed

  • Pergunta

  • Prezados, boa tarde.

    Eu sou responsável pela entrega de relatórios de minha empresa e temos um ambiente com Microsoft Windows 7 x64 e estações gerenciadas pelo SCCM 2012 R2.

    Estou personalizando o relatório de medição de software 116 e eu preciso de ajuda com o seguinte cenário:

    - O relatório deve trazer a soma dos valores distintos por computador de um determinado período (se não for possível, a que a soma de três meses, desde que possa ser rápida e mês e ano. (Ex: Total Usage: Month1+Month2+Month3, Avg Usage per Day: Month1+Month2+Month3, etc))

    - O relatório deve ter um prompt de regra de seleção de software e um para definição do período inicial (mês e ano).

    Eu tentei criar três conjuntos de dados diferentes e gerar três prompts onde cada um tinha o valor de um mês, no entanto, eu não poderia fazer uma expressão que somados os valores dos três conjuntos de dados por computadores, apenas a soma de toda a coluna.

    Hoje, esta é a minha expressão (Com prompts para Nome da regra de medição, mês e ano):

    ="declare @TimeKey int 
    declare @days float 
     
    SET @TimeKey = (100 * @Year + @Month)
     
    select @days=DATEDIFF(day,IntervalStart,DATEADD(month,1,IntervalStart)) 
    from v_SummarizationInterval where TimeKey=@TimeKey  
     
    if IsNULL(@days,0) > 0 
      select sys.Netbios_Name0, sys.User_Name0, sys.Last_Logon_Timestamp0, inst.SMS_Installed_Sites0, 
           mf.ProductName, 
           MAX(mf.meteredfileversion) as ProductVersion,
    	   MAX(mus.LastUsage) as LastUsage, 
           SUM(UsageCount) + SUM(TSUsageCount) as C021, 
           CAST((SUM(UsageCount) + SUM(TSUsageCount))/@days as numeric(38,2)) as C022, 
           CAST(SUM(UsageTime)/60.0 as numeric(38,2)) as C023, 
           CAST(SUM(UsageTime)/60.0/(SUM(UsageCount) + SUM(TSUsageCount)) as numeric(38,2)) as C024, 
           CAST(SUM(UsageTime)/60.0/@days as numeric(38,2)) as C025 
      from v_R_System sys 
      join v_MonthlyUsageSummary mus on sys.ResourceID=mus.ResourceID 
      join v_MeteredFiles mf on mus.FileID=mf.MeteredFileID 
      left join v_RA_System_SMSInstalledSites inst on sys.ResourceID=inst.ResourceID 
      where mf.SecurityKey = @RuleID 
      and mus.TimeKey = @TimeKey 
      and sys.ResourceID in
                (
                select colm.ResourceID
                from v_ClientCollectionMembers colm
                join v_Collection col on colm.CollectionID = col.CollectionID
                )
      group by sys.Netbios_Name0, sys.User_Name0, inst.SMS_Installed_Sites0, mf.productname, sys.Last_Logon_Timestamp0 
      having SUM(UsageCount) + SUM(TSUsageCount) > 0 
      order by sys.Netbios_Name0"

    A idéia é relativamente simples: somar para cada campo do relatório de medição, os valores por período.

    Alguém poderia me ajudar com esta questão?

    Grato.


    segunda-feira, 15 de junho de 2015 18:23

Todas as Respostas