none
Count condicional RRS feed

  • 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,

    quinta-feira, 8 de setembro de 2011 21:37

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

    quinta-feira, 8 de setembro de 2011 23:10

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

    quinta-feira, 8 de setembro de 2011 23:10
  • 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 :)
    sexta-feira, 9 de setembro de 2011 13:40
    Moderador