Totais em Correlatas com Linq

20/12/2011

0

Olá Pessoal,

Estou tendo muitas dificuldades em montar um relatório de movimentação de contas. Este relatório deve exibir a evolução das movimentações das contas em determinado periodo mensal informado pelo usuário.
O período pode ser variável (2 meses, 3 meses, até o máximo de 12).

Estou tentando realizar numa especie de query correlata, usando Linq no VS2010 C#, ReportViewer e SQL Server Compact,

Na consulta abaixo, consigo retornar as contas que tiveram e o total do movimento dessas contas
Mas, necessito montar agora o resultado dos periodos informados. Os dados da query externa estão corretor, e consigo visualizá-los num gridview de conferencia. O problema é justamente nos dados das queries internas. Já tentei de diversas formas, mas sem sucesso.

Agradeço desda já toda ajuda


var f = from fc in contexto.movimentacao_contas fc
join tm in contexto.tiposMovimentacao on fc.CodigoTipoMovimentacao equals tm.CodigoTipoMovimentacao

where fc.DataMovimento >= 201109 //Mês de Setembro/2011
&& fc.DataMovimento <= 201111 //Mês de Novembro/2011
&& fc.CodigoPJ == pCodigoPessoa
group fc by new { fc.CodigoPJ, fc.CodigoTipoMovimentacao, fc.Unidade, tm.Sinal } into fc_group

select new
{
fc_group.Key.CodigoPJ,
fc_group.Key.CodigoTipoMovimentacao,
fc_group.Key.Unidade,
fc_group.Key.Sinal,
QuantidadeMovimento = fc_group.Sum(fc => fc.QuantidadeMovimento),
ValorMovimento = (fc_group.Sum(fc => fc.ValorMovimento) * fc_group.Key.Sinal),
{
Retornar aqui a qtde, e saldo da movimentação de Setembro/2011 para as contas selecionadas acima
}

{
Retornar aqui a qtde, e saldo da movimentação de Outubro/2011 para as contas selecionadas acima
}

{
Retornar aqui a qtde, e saldo da movimentação de Novembro/2011 para as contas selecionadas acima
}


};
Marcos Simão

Marcos Simão

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar