Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Negrao.Felipe

Erro na query

Recommended Posts

Olá, estou fazendo um sistema de folha de pagamento.

 

essa é a Query

 

SELECT p.s_vendedor, SUM(p.comissao) AS comissao, v.salario, v.nome FROM tbpaga_vend p, tbvendedor v WHERE p.s_vendedor=v.seq AND p.data BETWEEN '01/05/2013' AND '31/05/2013' GROUP BY s_vendedor ORDER BY v.nome

 

Ele faz a busca no banco corretamente e retorna tudo corretamente tirando uma coisa, a DATA, ele ñ consegue fazer a filtragem da DATA e eu não consigo saber o porque.

 

Desde Já agradeço a ajuda.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, pois no banco a coluna não está como DATE e sim varchar.

 

melhor coisa é trabalhar com o DATE mesmo, com string não vai dar certo não. Exemplo:

 

você tem duas datas 21/01/2013 e 11/02/2013, se você ordenar por data crescente o correto seria 21/01 primeiro depois 11/02. Mas como seu campo está em string ele segue pelo primeiro numero no caso 1, então seu retorno seria 11/02 e depois 21/01. Viraria uma bagunça só !!

 

usa o date e depois converte para o formato de data que vc quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

melhor coisa é trabalhar com o DATE mesmo, com string não vai dar certo não. Exemplo:

 

você tem duas datas 21/01/2013 e 11/02/2013, se você ordenar por data crescente o correto seria 21/01 primeiro depois 11/02. Mas como seu campo está em string ele segue pelo primeiro numero no caso 1, então seu retorno seria 11/02 e depois 21/01. Viraria uma bagunça só !!

 

usa o date e depois converte para o formato de data que vc quiser.

Sim entendo isso, mas não estou fazendo este tipo de ordenação, gostaria apenas de saber o pq nessa query (já q em outras dessa forma funciona) não está funcionando a limitação de data.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Converte o campo de String para Date.

 

O Between não vai funcionar neste seu select exatamente pelo motivo que o rockrgo falou.

 

Não tem como pesquisar o valor entre duas palavras, utilizar corretamento o tipo de dados para cada campo é a melhor solução para evitar problemas como este que está enfrentando agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Converte o campo de String para Date.

 

O Between não vai funcionar neste seu select exatamente pelo motivo que o rockrgo falou.

 

Não tem como pesquisar o valor entre duas palavras, utilizar corretamento o tipo de dados para cada campo é a melhor solução para evitar problemas como este que está enfrentando agora.

 

Eu já faço essa pesquisa deste modo em outras querys, e da certo, somente nessa que está dando erro, mas de qualquer forma irei mudar p/ DATE e fazer os teste

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.