MySql:每个 id 的位置

标签 mysql sql

我有一个价格表,定义如下:

价格

amount
item_id
effective_date
end_date

item_id不是唯一的,所以我有一个项目列表,我想根据它们的 effective_date 和 end_date 获取它们对应的金额,我不想对每个项目进行查询,所以我想到这样做:

SELECT amount WHERE item_id IN (//set of ids) WHERE ?

那么如何为每个 id 指定日期条件呢?这可能吗?

编辑

这是一个示例代码

amount    item_is    effective_date    end_date
125.00    5          12/12/2015        01/03/2016
60.00     5          03/05/2015        12/12/2015
20.00     1          04/06/2015        01/09/2016
100.00    4          01/12/2015        01/03/2017
40.00     4          12/12/2014        01/03/2015
130.00    1          01/11/2010        01/06/2012

假设我想要第一个项目 4 和最后一个项目 1,在一个查询中,如何完成这个

最佳答案

使用 AND 添加更多条件

SELECT amount WHERE item_id IN (//set of ids) AND efective_date = SomeDate

如果有不同的情况不要使用IN

SELECT amount
FROM YourTable
WHERE (item_iS = 4 AND efective_date = CAST('01/12/2015' AS DATE)
      AND / OR
      (item_iS = 1 AND efective_date = CAST('01/11/2010' AS DATE)

关于MySql:每个 id 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41812580/

相关文章:

mysql - 多线程 Delphi 数据库应用程序因大量数据而失败

mysql - 从第二个表更新查询 mysql

sql - 在 SQLite 上创建累积移动平均线

mysql - 当月运行总和,累计运行总计上限

c# - 表示 SQL 数据库中的列表

Python-从数组中删除所有重复的条目

javascript - 当我尝试插入两条记录时,CUR_STOCK 表中只有一条记录得到更新?

java - PreparedStatement 和 CURDATE() MySQL 函数

php - 搜索过滤器在第一次尝试时不起作用

sql - 使用选项创建 View (maxrecursion)