PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Select com IF e between #408827

25/10/2011

0

Pessoal, preciso de uma ajuda.
Estou fazendo um consulta no meu banco de dados em duas tabelas mas preciso usar um IF para isso, sei a lógica e tentei fazer de algumas formas mas não consegui.

Tenho duas tabelas

-- 
-- Estrutura da tabela `tb_teste`
-- 

CREATE TABLE IF NOT EXISTS `tb_teste` (
`ID` int(11) NOT NULL auto_increment,
`preço` float(40,2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

-- 
-- Extraindo dados da tabela `tb_teste`
-- 

INSERT INTO `tb_teste` (`ID`, `preço`) VALUES(1, 0.00);
INSERT INTO `tb_teste` (`ID`, `preço`) VALUES(2, 100000.00);

-- --------------------------------------------------------

-- 
-- Estrutura da tabela `tb_teste_temp`
-- 

CREATE TABLE IF NOT EXISTS `tb_teste_temp` (
`ID` int(11) NOT NULL auto_increment,
`preço` float(40,2) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3;

-- 
-- Extraindo dados da tabela `tb_teste_temp`
-- 

INSERT INTO `tb_teste_temp` (`ID`, `preço`) VALUES(1, 50000.00);
INSERT INTO `tb_teste_temp` (`ID`, `preço`) VALUES(2, 100000.00);




------------------------------------------------------------------------

A lógica da minha consulta seria a seguinte

Selecionar na tabela tb_teste pelo preço de 10000.00 ente(between) 100000.00
Ai vem a parte que não estou conseguindo fazer.
Se o tb_teste.preço = 0.00 então selecione na tb_teste_temp pelo preço de 10000.00 ente(between) 100000.00

Com ajuda fiz algo assim mas não esta trazendo o resultado da temp, alguém tem uma forma para ajudar.

SELECT
        ID,
        if( preço = 0,( SELECT
                               preço
                          FROM
                               tb_teste_temp
                          WHERE
                               ID = tb_teste.ID and (tb_teste_temp.preço between 10000.00 and 100000.00)
           ), preço ) AS preço
FROM
        tb_teste Where (tb_teste.preço between 10000.00 and 100000.00)
Flavio Vico

Flavio Vico

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar