Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Olá, dúvida ao tentar inserir dados >=400

Tive alguns problemas onde mesmo com o código identico da transcrição, não estava conseguindo inserir somentes os valores ">=400", valores menores apareciam também na "tabelapedidosgold"

Após muita procura, enclusive no chatGPT rsrs Consegui inserir com o auxilio da função CAST

INSERT INTO tabelapedidosgold
    (ID_pedido_gold, 
     Data_Do_Pedido_gold, 
     Status_gold, 
     Total_Do_Pedido_gold, 
     Cliente_gold, 
     Data_De_Envio_Estimada_gold)
SELECT
    id,
    data_do_pedido,
    status,
    total_do_pedido,
    cliente,
    data_de_envio_estimada
FROM tabelapedidos
WHERE CAST(total_do_pedido AS DECIMAL(10,2)) >= 400;

Ou seja, provavelmente o tipo de campo "total_do_pedido" da tabela "tabelapedidos" esta com um formato errado, ou seja algo errado no import pelo arquivo CSV ?

E por fim quando fui verificar estava assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAcredito que seja por conta disso que não estava funcionando a inserção da professora

"Por exemplo, se você tiver valores como "400" e "90.25" armazenados como strings em uma coluna totaldopedido do tipo VARCHAR, a comparação totaldopedido >= 400 será feita lexicalmente, o que significa que "90.25" será considerado maior que "400" porque o primeiro caractere "9" é maior que o primeiro caractere "4"." (ChatGPT)

Conseguiriam me dizer se foi um bug ou algo assim ?

1 resposta
solução!

Bem observado. Muito boa análise.

Como vi seu post antes da referida aula, já observei a tipagem dos dados na tabelapedidos. Outra solução é recriar a tabela pedidos. Não consegui usar ALLTER TABLE MODIFY / ALTER COLUMN e atualizar a tipagem das colunas.

--- Criando uma nova tabela para receber os valores da tabelapedidos que foi anteriormente importada

CREATE TABLE new_tabelapedidos(
  ID_pedido int primary key,
  Data_do_pedido date,
  status_pedido varchar(15),
  total_do_pedido float,
  cliente_pedido int,
  data_de_envio_estimada date,
  FOREIGN KEY (cliente_pedido) REFERENCES tabelaclientes(id_cliente)
);


--- Inserir os dados da tabelapedidos na new_tabelapedidos

INSERT INTO new_tabelapedidos
SELECT * FROM tabelapedidos;


--- Verificar os dados inseridos na nova tabela

SELECT * FROM new_tabelapedidos;


--- Apagar a tabelapedidos com a tipagem de dados tudo text

DROP TABLE tabelapedidos;

Não consegui renomear a tabela new_tabelapedidos para tabelapedidos pelo comando RENAME TABLE. Então fiz pela interface do SQLiteonline.

RENAME TABLE new_tabelapedidos TO tabelapedidos;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software