我有一个查询,我希望过滤结果列表,但基于两个值之间的百分比。
我在这两个数据库中都有两个数据库'亚马逊'和'Zavvi'我有相同的产品和销售量,并使用以下内容过滤结果
SELECT amazon.price AS amazon_price, zavvi.price AS zavvi_price
FROM amazon.price, zavvi.price
WHERE amazon.price > zavvi.price
但是,我想计算两个价格的百分比,然后只显示该数量百分比的记录,但如果可能的话,在查询中全部完成。
目前我必须使用上面的查询我也给出了一个例子,然后在循环中做一个IF语句,计算每个记录的百分比,然后如果它符合我的需要,将它添加到一个数组,如此
$myrow['percent'] = number_format((100/$myrow['amazon_price'])*$myrow['zavvi_price'],0);
if ($myrow['percent'] >= 80) {
答案 0 :(得分:0)
请尝试以下查询,我希望应该提供帮助:
SELECT
amazon.price AS amazon_price,
zavvi.price AS zavvi_price
FROM
amazon,
zavvi
WHERE
amazon.price > zavvi.price
AND zavvi.price >= 0.8 * amazon.price
条件AND zavvi.price >= 0.8 * amazon.price
在逻辑上似乎等于计算值$myrow['percent'] >= 80
BTW我认为原始查询FROM amazon.price, zavvi.price
中的部分是错误的。
<强>已更新强>
我已经编辑了答案,考虑到同事正确加入表格以及评论中提供的信息给@Leo的答案。请在下面找到INNER-JOINED版本的查询:
SELECT
amazon.price AS amazon_price,
zavvi.price AS zavvi_price
FROM
amazon
INNER JOIN zavvi
ON amazon.ean = zavvi.ean
WHERE
amazon.price > zavvi.price
AND zavvi.price >= 0.8 * amazon.price
如果您需要有关联接的一些信息,可以在这里找到一些帮助:
答案 1 :(得分:0)
你也可以在
里面做数学计算SELECT TOP 100
amazon.price AS amazon_price,
zavvi.price AS zavvi_price,
zavvi.price / amazon.price AS zavvi_ratio
FROM amazon.price, zavvi.price
WHERE amazon.price > 0 AND
amazon.price > zavvi.price
HAVING zavvi_ratio > 0.8
ORDER BY zavvi_ratio DESC
P.S。我假设这里有某种联系你为了简洁而排除。
FROM amazon INNER JOIN zavvi ON amazon.id = zavvi.id