Sunday 31 December 2017

Ssrs 2008 r2 moving average


Atualmente, tenho um conjunto de grupos de colunas que me dá totais agrupados por mês. Na parte inferior desse relatório, eu tenho uma taxa de porcentagem que é gerada por: Tomando a quantidade total de chamadas com um status de respostas e dividindo-as por todas as chamadas que são jogadas na função FormatPercent (). Gostaria agora de obter uma média mensal desses agrupamentos mensais em formato de porcentagem. Isso é possível. A caixa vermelha é meu ColumnGroup e a seta é onde eu gostaria da minha porcentagem. Veja abaixo ltExprgtgt: A soma de cada mês anterior dados de Meses - Isto é o que eu estou tentando alcançar Aqui estão alguns dados de amostra: Alguém sabe a possibilidade de criar uma função personalizada para me ajudar a realizar isso. E a resposta parece bem próxima Para o que eu estou procurando, eu realmente não entendo o suficiente para descobrir o que está acontecendo nos bastidores para que funcione para mim. Alguém poderia ajudar. É possível usar a função RunningValue de alguma forma Espero que isso ajude com a confusão. Estou trabalhando com o SQL Server 2008 R2, tentando calcular uma média móvel. Para cada registro na minha opinião, gostaria de coletar os valores dos 250 registros anteriores e, em seguida, calcular a média para esta seleção. As minhas colunas de exibição são as seguintes: TransactionID é exclusivo. Para cada ID de transação. Gostaria de calcular a média do valor da coluna, em relação aos 250 registros anteriores. Então, para TransactionID 300, colete todos os valores das 250 linhas anteriores (a exibição é ordenada por TransactionID) e, em seguida, na coluna MovAvg, escreva o resultado da média desses valores. Estou procurando coletar dados dentro de uma variedade de registros. Solicitado 28 de outubro às 20: 58 De acordo com sua descrição, você possui uma matriz em seu relatório. Agora você deseja calcular o valor médio dos últimos 6 meses. Direito No Serviço de Relatório, podemos colocar o código personalizado no relatório para lidar com lógica complicada. Adicione mais um colégio dentro do grupo e ligue para as funções definidas no código personalizado. Para sua exigência, modificamos o código de Roberts para atingir seu objetivo. Testamos seu caso em nosso ambiente local com dados de amostra. Aqui estão as etapas e as capturas de tela para sua referência: Coloque o código personalizado no relatório: Private queueLength As Integer 6 Private queueSum As Double 0 Private queueFull As Boolean False Private idChange como Stringquotquot Dim fila Como Novo System. Collections. Generic. Queue (Of Integer) Public Function CumulativeQueue (ByVal currentValue As Integer, id As String) Como Object Dim removedValue As Double 0 Se idChange ltgt id, então ClearQueue () idChange id queueSum 0 queueFull False CumulativeQueue (currentValue, id) Else If queue. Count gt queueLength Então removidoValue de fila. Dequeue () End If queueSum 43 currentValue queueSum - removedValue queue. Enqueue (currentValue) Se file. Count lt queueLength então retornar Nothing ElseIf queue. Count queueLength E queueFull False Then queueFull True Return queueSum queueLength Else Return (queueSum) queueLength End If End Se Função final função pública ClearQueue () Dim i como Integer Dim n como Integer Queue. Count-1 para in Para 0 Step-1 queue. Dequeue () next i Função final Adicione mais uma linha dentro do grupo, chame a função definida no código personalizado. Salvar e visualizar. Parece abaixo: se você tiver alguma dúvida, não hesite em perguntar. Atenciosamente, Simon Hou (Pactera) quarta-feira, 14 de maio de 2017 12:36 Todas as respostas Sim. Você pode usar a função RunningValue para este algo como abaixo. Por favor, marque isso como resposta se ajudar a resolver o problema Visakh --------------------------- - visakhm. blogspot facebookVmBlogs De acordo com sua descrição, você possui uma matriz em seu relatório. Agora você deseja calcular o valor médio dos últimos 6 meses. Direito No Serviço de Relatório, podemos colocar o código personalizado no relatório para lidar com lógica complicada. Adicione mais um colégio dentro do grupo e ligue para as funções definidas no código personalizado. Para sua exigência, modificamos o código de Roberts para atingir seu objetivo. Testamos seu caso em nosso ambiente local com dados de amostra. Aqui estão as etapas e as capturas de tela para sua referência: Coloque o código personalizado no relatório: Private queueLength As Integer 6 Private queueSum As Double 0 Private queueFull As Boolean False Private idChange como Stringquotquot Dim fila Como Novo System. Collections. Generic. Queue (Of Integer) Public Function CumulativeQueue (ByVal currentValue As Integer, id As String) Como Object Dim removedValue As Double 0 Se idChange ltgt id, então ClearQueue () idChange id queueSum 0 queueFull False CumulativeQueue (currentValue, id) Else If queue. Count gt queueLength Então removidoValue de fila. Dequeue () End If queueSum 43 currentValue queueSum - removedValue queue. Enqueue (currentValue) Se file. Count lt queueLength então retornar Nothing ElseIf queue. Count queueLength E queueFull False Then queueFull True Return queueSum queueLength Else Return (queueSum) queueLength End If End Se Função final função pública ClearQueue () Dim i como Integer Dim n como Integer Queue. Count-1 para in Para 0 Step-1 queue. Dequeue () next i Função final Adicione mais uma linha dentro do grupo, chame a função definida no código personalizado. Salvar e visualizar. Parece abaixo: se você tiver alguma dúvida, não hesite em perguntar. Atenciosamente, Simon Hou (Pactera) quarta-feira, 14 de maio de 2017 12:36 PM A Microsoft está realizando uma pesquisa on-line para entender sua opinião sobre o site da Msdn. Se você optar por participar, a pesquisa on-line será apresentada quando você deixar o site Msdn. Gostaria de participar 2017 da Microsoft. Todos os direitos reservados.

No comments:

Post a Comment