Ir para conteúdo

POWERED BY:

Arquivado

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

pedrohenrique

coluna virtual

Recommended Posts

digamos que eu tenha uma tabela de produtos com um campo de preco em reais e outro de preco em dolarquando eu cadastro os produtos só é permitido prencher um dos campos, ou preco em reais ou em dolar.porem quando eu vou fazer uma consulta para um relatorio, quero ordenar por preco em reais, e dai tenho que fazer uma conversao com o preco de dolar para tranformar em um valor em reais.digamos que eu tenha um produto de 1,50reais e um de 1,00dolar. O de dolar vai aparecer antes que o do real, pois ele tem um valor mais baixo(1,00<1,50) só que se fizer a conversao deste valor com o dolar a 2,50reias ele vai valer 2,50reais... que eh maior que o produto com o valor em reais entao ele devia aparecer apos o do real.tem algum jeito de fazer isso sem ser em php, ou seja no mysql mesmo, algum jeito de fazer uma coluna virtual que contenha esse valor convertido a cada consulta feita, pois o dolar muda toda hora e ai não tem como fazer uma conversao com um valor armazenado fixo???qualquer ajuda valew.

Compartilhar este post


Link para o post
Compartilhar em outros sites

além disso você pode vria uma variável $dolar e pegar num site de banco sei lá, manda uns e-mails e consegue o valor do dólar em tempo real poe na ariável....aí faz o conversor separado do programa do BD...pois como o fábio falou fica fora do "modelo relacional de dados".....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você até poderia usar um mesmo campo, só que deveria ter um outro campo indicando se é dólar ou real, daí tu usa os IFs do mysql, transforma em real passando pra uma var, e manda ordenar por essa var, é meio complicadinho hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

é um sistema desse se deve pensar bem antes de desenvolver

pois um banco bem modelado te trara otimos resultados e nenhuma dor de cabeça futura ,o pessoal nao da valor mas o banco de dados é uma das partes mais importante do sistema muita gente só usa pra jogar as coisas nele e mais nada ,mas se der pra você repensar sobre esse sistema você vai ver que o final vale a pena ,melhor que tentar remendar ele hj e manha tiver outro furo maior pra remendar

Compartilhar este post


Link para o post
Compartilhar em outros sites

+- como o prescotsan faloumas não acho complicado nãodepende da estrutura dos seus dadospor exemplo,crie um campo chamado "moeda"nesse campo você coloca o tipo da moedapor exemplovalor 1 -> realvalor 2 -> dolarvalor 3 -> eurono campo preco ficará gravado o valornão importa se for real, dolar.. pois o que vai dizer qual o tipo de moeda é o campo "moeda"faça aconsulta no bd e faça o cálculo de conversão on-the-fly mesmo. usando javascriptou php, sei-lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quis dizer algo como:

SELECT IF(moeda='dolar',preco*2.50,preco) as preco FROM tabela ORDER BY preco ASC

Algo assim, não testei aqui, mas acredito que funcione. ^_^
esse if seria no mysql mesmo??? ou em php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quis dizer algo como:

SELECT IF(moeda='dolar',preco*2.50,preco) as preco FROM tabela ORDER BY preco ASC

Algo assim, não testei aqui, mas acredito que funcione. ^_^
e como eu faco para fazer uma consulta e ter como resultados os precos entre x e y???

 

 

já tentei assim:

where preco>=$x and preco<=$y

 

porem so retornou os resultados que tinham o preco em reais e nao os da coluna da multiplicacao pelo preco do dolar....

 

 

 

e o que quer dizer

SELECT IF(moeda='dolar',preco*2.50,preco) as preco

as partes em negrito???

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.