Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在sql中使用范围来获取价格范围?_Mysql_Sql_Oracle - Fatal编程技术网

Mysql 如何在sql中使用范围来获取价格范围?

Mysql 如何在sql中使用范围来获取价格范围?,mysql,sql,oracle,Mysql,Sql,Oracle,我有一张结构如下的桌子 从该表中,我需要使用表中给出的范围来找到价格 ex: if i give the Footage_Range1=100 means it will give the output as 0.00 and if Footage_Range1=101 means the output is 2.66 if Footage_Range1=498 means the output is 2.66 如何编写查询以获取价格?如果我正确理解您的要求,您可以尝试以

我有一张结构如下的桌子

从该表中,我需要使用表中给出的范围来找到价格

ex:
   if i give the Footage_Range1=100 means it will give the output as 0.00 and 
   if Footage_Range1=101 means the output is 2.66
   if Footage_Range1=498 means the output is 2.66

如何编写查询以获取价格?

如果我正确理解您的要求,您可以尝试以下方法:

SELECT
    price 
FROM 
    my_table
WHERE
    Footage_Range1 <= YOUR_RANGE
ORDER BY
    Footage_Range1 DESC
LIMIT 1
选择
价格
从…起
我的桌子
哪里

如果我正确理解您的要求,您可以尝试以下方法:

SELECT
    price 
FROM 
    my_table
WHERE
    Footage_Range1 <= YOUR_RANGE
ORDER BY
    Footage_Range1 DESC
LIMIT 1
选择
价格
从…起
我的桌子
哪里
镜头范围1
请尝试以下代码。。
从您的价格表中选择价格,其中进尺范围1
请在下面的代码中尝试。。

从您的价格表中选择价格,其中进尺范围1我有您需要的样品。请看一看

DECLARE @range INT = 498
DECLARE @Test TABLE(mfg_id INT, footage_range INT, price FLOAT)

INSERT INTO @Test ( mfg_id, footage_range, price )
            SELECT 2, 0, 0.00
UNION ALL   SELECT 2, 101, 2.66
UNION ALL   SELECT 2, 500, 2.34
UNION ALL   SELECT 2, 641, 2.21
UNION ALL   SELECT 2, 800, 2.11
UNION ALL   SELECT 2, 1250, 2.06

SELECT TOP 1 
 * 
FROM @Test WHERE footage_range <= @range
ORDER BY footage_range DESC
DECLARE@range INT=498
声明@Test TABLE(制造id整数、进尺范围整数、价格浮动)
插入@Test(制造商id、进尺范围、价格)
选择2、0、0.00
联合所有选择2、101、2.66
联合所有选择2500,2.34
UNION ALL选择26412.21
联合所有选择2800,2.11
UNION ALL SELECT 21250,2.06
选择前1名
* 

从@Test WHERE taines_range中,我有您需要的样品。请看一看

DECLARE @range INT = 498
DECLARE @Test TABLE(mfg_id INT, footage_range INT, price FLOAT)

INSERT INTO @Test ( mfg_id, footage_range, price )
            SELECT 2, 0, 0.00
UNION ALL   SELECT 2, 101, 2.66
UNION ALL   SELECT 2, 500, 2.34
UNION ALL   SELECT 2, 641, 2.21
UNION ALL   SELECT 2, 800, 2.11
UNION ALL   SELECT 2, 1250, 2.06

SELECT TOP 1 
 * 
FROM @Test WHERE footage_range <= @range
ORDER BY footage_range DESC
DECLARE@range INT=498
声明@Test TABLE(制造id整数、进尺范围整数、价格浮动)
插入@Test(制造商id、进尺范围、价格)
选择2、0、0.00
联合所有选择2、101、2.66
联合所有选择2500,2.34
UNION ALL选择26412.21
联合所有选择2800,2.11
UNION ALL SELECT 21250,2.06
选择前1名
* 


从@Test WHERE taines\u range哪里是表结构,输出是如何计算的?表结构在哪里,输出是如何计算的?这将返回多个值。哦…是的@L\u Holcombe u r right:)将修改我的帖子。Thanks@SeeSharp这里的
orderby
对于获取范围输入小于或等于
taines\u range 1的最接近价格至关重要。这将返回多个值。哎呀……耶@L\u Holcombe u r right:)将修改我的帖子。Thanks@SeeSharp这里的
ORDER BY
对于获取范围输入小于或等于
taines\u range 1的最接近价格至关重要,我已经尝试了您的代码,但如果我给出查询“从[taines\u price]中选择价格”如果taines\u Range1@JasperManickaraj您忘记了
LIMIT 1
LIMIT 1在sql中无效。因此我将此查询放在“从[taines\u price]中选择top 1*”如果进尺范围1它应该返回价格:2.06因为
进尺范围1
TOP 1
应该只返回你1 rowhi@stephen我已经尝试了你的代码,但是如果我给出查询“从[进尺范围1]中选择价格,如果进尺范围1@JasperManickaraj你忘记了
限制1
限制1在sql中无效。所以我提出了这个查询”从[Cutes\u price]中选择top 1*,其中Cutes\u Range1应返回价格:2.06,因为
Cutes\u Range1
top 1
应仅返回1行