Jump to content
Julio Cavallari

Problema ao selecionar valor minimo numa tabela

Recommended Posts

Estou tentando executar uma query para retornar pra mim qual o valor minimo de uma coluna:

SELECT MIN(nfatura) as nfatura_min FROM `financeiro` WHERE pedido = "857087" AND situacao = 'N';

O problema é que ela me retorna como menor valor 10

Spoiler

image.png.ebf03739acee371a98da987b29e46099.png

 

Só que esse não é o menor valor. Como podem ver no select abaixo, o menor valor pra essa coluna é 2 segundo as cláusulas que coloquei:

Spoiler

image.png.9b54174fccd5b368ba15e43a1f3ce8a4.png

Onde está o erro?

Share this post


Link to post
Share on other sites

erro nenhum, caso a coluna seja tipo string.

tente mudar p/ 1 tipo numerico, como int por exemplo

Share this post


Link to post
Share on other sites
11 minutos atrás, Fernando C disse:

erro nenhum, caso a coluna seja tipo string.

tente mudar p/ 1 tipo numerico, como int por exemplo

 

11 minutos atrás, Fernando C disse:

erro nenhum, caso a coluna seja tipo string.

tente mudar p/ 1 tipo numerico, como int por exemplo

SELECT nfatura FROM `financeiro` WHERE pedido = "857087" AND situacao = 'N' ORDER BY nfatura ASC LIMIT 1;

Share this post


Link to post
Share on other sites
8 horas atrás, Fernando C disse:

erro nenhum, caso a coluna seja tipo string.

tente mudar p/ 1 tipo numerico, como int por exemplo

Era esse mesmo o problema, estava como varchar o campo

Share this post


Link to post
Share on other sites

Uma outra alternativa é somar com 0 (zero) o valor da coluna, assim o MySql faz o CAST automatico para INT. 

Assim não precisaria alterar o tipo do campo, que as vezes pode gerar impacto em outra parte do sistema.

Teste no Fiddle:

LInk Fiddle

CREATE TABLE Persons (
    PersonID varchar(255)
);

INSERT INTO Persons (PersonID) VALUES ('1'),('2222'),('3'),('4'),('5');

SELECT MAX(PersonID + 0) FROM Persons

 

Share this post


Link to post
Share on other sites
Em 10/08/2018 at 16:48, Uerlen Santos disse:

Uma outra alternativa é somar com 0 (zero) o valor da coluna, assim o MySql faz o CAST automatico para INT. 

Assim não precisaria alterar o tipo do campo, que as vezes pode gerar impacto em outra parte do sistema.

Teste no Fiddle:

LInk Fiddle


CREATE TABLE Persons (
    PersonID varchar(255)
);

INSERT INTO Persons (PersonID) VALUES ('1'),('2222'),('3'),('4'),('5');

SELECT MAX(PersonID + 0) FROM Persons

 

Muito obrigado pelo dica, bom saber disso, pode ser útil, mas nesse caso alterar o tipo do campo era a melhor solução mesmo, não utilizo em mais lugar nenhum os dados desse campo, somente nessa tabela mesmo. E como ela só pode receber número inteiros via verificação no script PHP não teria porque deixar o campo como varchar

Share this post


Link to post
Share on other sites

Trabalhe com o tipo correto , evita complicações desnecessárias.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Cascais51
      Olá, pessoal!
      Tenho um banco de dados com 111 tabelas de um sistema de gestão feito para um cliente. Acontece que agora quero transformar esse sistemas em SaaS, Quero manter ele com a mesma base, apenas incluindo uma tabela "licencas" onde terei o cadastro de meus clientes na modalidade SaaS com as configurações necessárias e possíveis ligações com tabelas de mensalidades e etc.
      Pois bem, para não fazer grandes alterações nesse sistema, adicionei uma coluna de nome "licenca" em cada uma das 111 tabelas e fiz uma chave estrangeira em cada uma ligando a chave primária da tabela "licencas" (id_licenca).
      A ideia é com mais tempo organizar para apenas as tabelas chaves terem essa ligação com a tabela licencas, mas por enquanto tenho pouco tempo, mas gostaria de saber de vocês se ter essa coluna "licenca"  em todos as tabelas ligando a tabela licenças vai ser muito custoso em processamento para meu banco de dados, ou é indiferente?

      Acham que eu deveria deixar o campo sem chave estrangeira?
       
      Enviei a imagem com o diagrama de apenas 5 tabelas para ilustrar. são muitas tabelas para enviar todas.

    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


    • By dhebryhan
      #importar a biblioteca
      import pymysql
      #conexao com banco de dados
      conexao = pymysql.connect(
          host    = "localhost",
          user    = "root",
          passwd  = "123456",
          db      = "dbMegasena"
      )

      cursor = conexao.cursor()
      #gerando combinacoes dos numeros
      for dez1 in range(60):
          for dez2 in range(dez1+1,60):
              for dez3 in range(dez2+1,60):
                  for dez4 in range(dez3+1,60):
                      for dez5 in range(dez4+1,60):
                          for dez6 in range(dez5+1,60):
                             #total += 1
                              sql_data = (dez1 + 1, dez2 + 1, dez3 + 1, dez4 + 1, dez5 + 1, dez6 + 1)
                              sql = "INSERT INTO combinacoesMega (bola01, bola02, bola03, bola04, bola05, bola06) VALUES(?, ?, ?, ?, ?, ?)"
                              cursor.execute(sql, sql_data)
    • By luigiferrari
      Boa Tarde, sou iniciante no php, mas acho q isso seria coisa simples de se fazer. Porem não estou conseguindo...
      Se puderem me ajudar. 
      Agradeço desde já!


    • By guzulino
      Então... eu preciso inserir uma paulada de dados em um banco de dados de vez em quando, eu até consigo importar de um CSV pro banco, mas eu preciso fazer isso através do php e eu não tenho nem ideia de como fazer isso, procurei por aqui e não achei, se alguém tem alguma resposta ou referência, manda o link que eu vou dar uma olhada. Valeu.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.