none
Ajuda com Comando SUM SqlCE RRS feed

  • Pergunta

  • Bom dia a todos da comunidade!

     

    Estou implantando alguns relatórios dentro de minha aplicação móvel. Estou usando uma consulta SQL e utilizando um SUM para somar total de vendas por período agrupado por cliente. Mas quando manda executar a consulta, o sistema acusa erro e se eu tiro o SUM, funciona normalmente. Me parece que o SUM para SqlCE tem algumas particularidades. Será que alguém pode me ajudar com relação a isso?

     

    Grato da atenção


    Cleber C. Ferreira Desenvolvedor E-mail e MSN: clebernet02@yahoo.com.br
    terça-feira, 20 de setembro de 2011 14:05

Todas as Respostas

  • Ora viva! Que versão de SqlCE estás a utilizar? Podes colocar um exemplo do query que estás a tentar executar?


    Pedro Lamas
    DevScope | Senior Solution Developer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas

    terça-feira, 20 de setembro de 2011 14:30
  • Ola Pedro!

     

    segue meu código:

     

        sql = "Select (movimentos.cli_codigo) as CodCliente, (clientes.cli_nome)as NomeCliente, ";

                sql += "sum(movimentos.mov_valorliquido) as VlrLiquido ";

                sql += "from movimentos, clientes ";

                sql += "where movimentos.mov_data >= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd 00:00:00") + "' ";

                sql += "and movimentos.mov_data <= '" + dateTimePicker2.Value.ToString("yyyy-MM-dd 23:59:59") + "' ";

                if (FiltroCliente == "V")

                    sql += "and movimentos.ven_codigo = '" + UsuarioID + "' ";

                if (CmbEstado.Text != "")

                {

                    sql += "and clientes.cli_estado = '" + CmbEstado.Text + "' ";

                }

                if (CmbCidade.Text != "")

                {

                    sql += "and clientes.cli_cidade = '" + CmbCidade.Text + "' ";

                }

                sql += "group by CodCliente";

                sql += "order by NomeCliente;";


    Cleber C. Ferreira Desenvolvedor E-mail e MSN: clebernet02@yahoo.com.br
    terça-feira, 20 de setembro de 2011 14:33
  • Tendo em conta que o teu SELECT tem dois campos não agrupados, penso que terás de agrupar pelos dois e não apenas por um!

    Assim, tenta substituir o teu GROUP BY por:

    sql += "group by CodCliente, NomeCliente";

    ou mesmo:

    sql += "group by movimentos.cli_codigo, clientes.cli_nome";


    Pedro Lamas
    DevScope | Senior Solution Developer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas
    • Sugerido como Resposta Pedro LamasMVP terça-feira, 20 de setembro de 2011 16:18
    terça-feira, 20 de setembro de 2011 14:36
  • Cleber, conseguiu resolver o seu problema? :)
    Pedro Lamas
    DevScope | Senior Solution Developer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas
    quinta-feira, 22 de setembro de 2011 11:28
  • Bom dia Pedro! Resolvi sim. Obrigado pela ajuda. Só não entendi porque é obrigatório ter dois critérios no group by. Mas tudo bem, resolvendo é o que realmente interessa. Mais uma vez obrigado pela ajuda. Att.
    Cleber C. Ferreira Desenvolvedor E-mail e MSN: clebernet02@yahoo.com.br
    quinta-feira, 22 de setembro de 2011 12:18
  • Tem a ver com a sintaxe de SQL em si: numa consulta agrupada, todos os campos que estejam no SELECT e que não tenham uma função de agrupamento (o "SUM" por exemplo) tem de aparecer também no GROUP BY!
    Pedro Lamas
    DevScope | Senior Solution Developer & WP7 Development Speaker
    www.pedrolamas.com | @pedrolamas
    • Sugerido como Resposta Pedro LamasMVP quinta-feira, 22 de setembro de 2011 12:21
    quinta-feira, 22 de setembro de 2011 12:21
  • Cleber, tdo bem??

    Como já foi dito antes, isso tem aver com a consulta usando agrupamento e não tem como fugir disso.

    Todas colunas do que forem usados no Select e que não estejam sendo usados com função de agrupamento, como o SUM, deverão estar OBRIGATORIAMENTE no Group By... Sorry...

     

    Grande abraço

    sexta-feira, 30 de setembro de 2011 01:35