我正在运行此查询:
SELECT p.id, p.descricao, p_s.preco as antigo, pr.preco as novo
FROM produtos_supermercados p_s
JOIN produtos p
ON(p_s.id_produto = p.id)
JOIN promocoes pr
ON(pr.id_produto = p.id)
我得到了这个结果:
id descricao antigo novo
16 Cookies Diet Jasmine R$3,40 R$1,50
17 Creme de Leite Nestle 300g R$1,99 R$1,00
48 Johnson Baby Shampoo 200ml R$4,00 R$2,00
49 Televisão LCD LG R$999,90 R$2,00
我想获得两个最佳优惠,其中antigo
是正常价格而novo
是不合理的价格。
所以,在这种情况下,我想首先运行一个返回Televisão LCD LG
的查询,因为这是最好的报价(原价是999美元,现在只花2美元),我也想要第二个
但我需要小心,因为最好的报价不是原价和报价之间差异较大的报价。 例如,如果产品A的价格是1000美元,而现在的价格是900美元,而产品B的价格是5美元,现在的价格是1美元,我就有这个:
A-> $1000 - $900 = $100
B-> $5 - $1 = $4
因此,产品A的价格差异较大,但产品B的报价最高! 我怎么能这样做?
答案 0 :(得分:0)
您需要决定如何做到这一点,但合理的方法是使用折扣金额。 1000美元 - > 900美元,即10%; 5美元 - > 1美元是80%。
SELECT p.id, p.descricao, p_s.preco as antigo, pr.preco as novo
FROM produtos_supermercados p_s JOIN
produtos p
ON(p_s.id_produto = p.id) JOIN
promocoes pr
ON(pr.id_produto = p.id)
ORDER BY pr.preco / p_s.preco desc;