Usuário com melhor resposta
Count condicional

Pergunta
-
Tenho a query abaixo:
onde nas 3 linhas :
QtdePermuta = tbUnidades.gaf_permutante,
QtdeReserva = tbUnidades.gaf_statusunidade,
QtdeVendida = tbUnidades.gaf_statusunidade,
QtdeDisponivel = tbUnidades.gaf_statusunidade,deve retornar o count da seguinte condição:
count(tbUnidades.gaf_permutante = 1)count( tbUnidades.gaf_statusunidade = 'DS')
e assim sucessivamente, como reproduzir isto?
var pesquisa = (from tbEmp in lstEmpreendimentos // este é uma lista de objetos (Onde uso LinqtoObjects join tbVendas in linq.Linq<gaf_tabelavenda>() //LinqToCrm join on tbEmp.idSapEmpreendimento.ToString() equals tbVendas.gaf_nopedido.Substring(0, 4)//LinqToCrm join join tbBloco in linq.Linq<gaf_torre>() on tbVendas.gaf_nopedido.Substring(4, 4) equals tbBloco.gaf_sap_id.Substring(4, 4) join tbUnidades in linq.Linq<gaf_unidade_lote>() on tbBloco.gaf_torreid.Value.ToString() equals tbUnidades.gaf_torreid.Value.ToString() join marcas in linq.Linq<gaf_empresa>() on tbEmp.Marca[0].Guid.ToString() equals marcas.gaf_empresaid.Value.ToString() group tbEmp by new { Guid = tbEmp.Guid, Tipologia = tbUnidades.gaf_tipologia, DataPrevisaoEntrega = tbVendas.gaf_datadeterminodeobra, Bairro = tbEmp.Bairro, QtdeUnidades = tbBloco.gaf_quantidade_unidades, dsEmpreendimento = tbEmp.dsEmpreendimento, Status = tbUnidades.gaf_statusunidade, QtdePermuta = tbUnidades.gaf_permutante, QtdeReserva = tbUnidades.gaf_statusunidade, QtdeVendida = tbUnidades.gaf_statusunidade, QtdeDisponivel = tbUnidades.gaf_statusunidade, ValorMenor = 1, ValorMaior = 10, Nomemarca = marcas.gaf_name, RegiaoVendasGuid = tbEmp.RegiaoVenda[0].Guid, EstadoId = tbEmp.Estado[0].Guid, Cidade = tbEmp.Cidade//, //TipoVenda = tbBloco.gaf_ } into tabela select new { Guid = tabela.Key.Guid, DataPrevisaoEntrega = tabela.Key.DataPrevisaoEntrega, Bairro = tabela.Key.Bairro, Nome = tabela.Key.dsEmpreendimento, QuantidadeUnidades = tabela.Count(), TipologiaUnidade = tabela.Key.Tipologia, QtdePermuta = tabela.Key.QtdePermuta, QtdeReserva = tabela.Key.QtdeReserva, QtdeVendida = tabela.Key.QtdeVendida, QtdeDisponivel = tabela.Key.QtdeDisponivel, ValorMenor = tabela.Key.ValorMaior, ValorMaior = tabela.Key.ValorMenor, NomeMarca = tabela.Key.Nomemarca, RegiaoVendasGuid = tabela.Key.RegiaoVendasGuid, EstadoId = tabela.Key.EstadoId, Cidade = tabela.Key.Cidade }).ToList();
obrigado e abraços,
Respostas
-
Pessoal,
uma coisa que descobri acho q isto da certo, é depois que fiz a busca e etc
eu pego a lista e uso lambda expression para contar por exemlo
int contador = pesquisa.Count(x=>x.QtdeReserva.ToString().ToUpper().Equals("VP"))
acho que isto da certo eu fiz um teste aqui com meu projeto de laboratorio e deu certo, agora vou ver com o projeto real, alguém confirma isto?
abraços
- Sugerido como Resposta Olavo Oliveira NetoModerator sexta-feira, 9 de setembro de 2011 13:40
- Marcado como Resposta Edilson sexta-feira, 9 de setembro de 2011 19:14
Todas as Respostas
-
Pessoal,
uma coisa que descobri acho q isto da certo, é depois que fiz a busca e etc
eu pego a lista e uso lambda expression para contar por exemlo
int contador = pesquisa.Count(x=>x.QtdeReserva.ToString().ToUpper().Equals("VP"))
acho que isto da certo eu fiz um teste aqui com meu projeto de laboratorio e deu certo, agora vou ver com o projeto real, alguém confirma isto?
abraços
- Sugerido como Resposta Olavo Oliveira NetoModerator sexta-feira, 9 de setembro de 2011 13:40
- Marcado como Resposta Edilson sexta-feira, 9 de setembro de 2011 19:14
-
Certissimo Edilson. A Count + Lambda é uma boa forma de resolver sua questão.
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Se for útil marque como resposta e faça um Developer feliz :)- Marcado como Resposta Edilson sexta-feira, 9 de setembro de 2011 19:14
- Não Marcado como Resposta Olavo Oliveira NetoModerator sexta-feira, 9 de setembro de 2011 19:23