Dúvida com SQL Firebird

SQL

14/11/2022

Boa tarde amigos, estou precisando de um help em um SQL.

Seguinte, tem uma tabela que se chama ''tabela_precos'' que armazena os valores dos produtos aqui da loja. Todos os produtos tem mais de um preço, por exemplo:

id | produto | tabela | preço
142 | Celular x | 1 | 1.200

id | produto | tabela | preço
142 | Celular x | 2 | 900


Ai que vem minha dúvida, eu to tentando fazer um sql que busca o preço da tabela 2, porém, se ele não existir, preciso que traga o preço da tabela 1.

To meio travado aqui, qualquer ajuda será bem vinda,

obrigado!
Yuri

Yuri

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

15/11/2022

select
   p.produto,
   (case when t2.tabela is null then t1.tabela else t2.tabela) tabela,
   (case when t2.tabela is null then t1.preco else t2.preco) preco
from
   produto p
left join
   tabela_precos t2 on t2.produto = p.produto and t2.tabela = 2
left join
   tabela_precos t1 on t1.produto = p.produto and t1.tabela = 1 and t2.tabela is null

GOSTEI 1

Mais Respostas

Yuri

Yuri

14/11/2022

select
   p.produto,
   (case when t2.tabela is null then t1.tabela else t2.tabela) tabela,
   (case when t2.tabela is null then t1.preco else t2.preco) preco
from
   produto p
left join
   tabela_precos t2 on t2.produto = p.produto and t2.tabela = 2
left join
   tabela_precos t1 on t1.produto = p.produto and t1.tabela = 1 and t2.tabela is null



Valeu irmão, mandou muito! funcionou.

muito obrigado <3
GOSTEI 0
POSTAR