DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Flavio Vico
 

País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 1
 Postado em: 25/10/2011 5:17:40 PM

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

#Código

--
-- 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.

#Código

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)
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03