gpt4 book ai didi

php - 获取最接近的值mysql

转载 作者:行者123 更新时间:2023-11-29 13:43:48 27 4
gpt4 key购买 nike

我有 3 张 table :

价格

id   price   date
1 50 20130716
2 30 20130717

TVA

id    val      start      end
1 7 20080101 20103112
2 8 20110101

margin

id    qty    marg
1 500 25
2 600 20
3 800 15
4 1000 13
5 1250 11
...

现在我的查询不起作用:

$quantity = '557';

$link->query("
SELECT (
(price+marg)*((val+100)/100)
)
FROM PRICE
JOIN TVA
JOIN MARGIN
WHERE date = '20130717'
AND end = ''
AND qty = '$quantity'
");

问题是 table 上没有qty = '557'。我想做的是选择最接近(在本例中)“557”的数量。

所以如果:

$quantity = '557' 查询应选择 600

$quantity = '701' 查询应选择 800

$quantity = '1238' 查询应选择 1250

等等

这可能吗?

最佳答案

如果将其放入过程中,则可以使用类似这样的内容(某种伪代码):

CREATE PROCEDURE pDoStuff(@target INTEGER)
AS

DELCARE @qty INTEGER

-- Get closest qty
@qty = SELECT TOP 1 qty
FROM table
ORDER BY ABS(@target - qty) ASC


-- use that "actual" qty in your query
SELECT ((price+marg)*((val+100)/100)
FROM price
JOIN TVA
JOIN MARGIN
WHERE date = 'thedate'
AND end = ''
AND qty = @qty

GO

语法不正确,但它给了你一个想法。这将允许您从原始查询中选择具有最接近数量值的所有行。这里的大多数其他答案都会将您的最终结果限制为一行(这可能是也可能不是您真正想要的)。

关于php - 获取最接近的值mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com