如何使用子查询填充 Access 查询中的列
Posted
技术标签:
【中文标题】如何使用子查询填充 Access 查询中的列【英文标题】:How to use subquery to populate column in Access query 【发布时间】:2013-09-18 10:09:55 【问题描述】:我正在开发一个用于预测购买的 Access 数据库,并且我正在尝试创建一个查询,该查询将给我提供有效价格和行总和的记录列表。
当我尝试将价格与数量结合起来时,我遇到了问题。我有以下表格
包含预测数据的表(省略与此查询无关的列)
need_rows
ID product_id qty use_date
----------------------------
1 1 100 1.1.2014
2 1 50 15.1.2014
...
价格表
prices
ID product_id price valid_from
----------------------------------
1 1 1 1.12.2013
2 1 2 24.12.2013
3 1 5 10.1.2014
...
查询结果应如下所示:
result of query
product_id use_date qty price sum
---------------------------------------
1 1.1.2014 100 2 200
1 15.1.2014 50 5 250
...
这意味着我需要根据需要行中的 use_date 和价格中的 valid_from 日期为每一行获取有效价格。有效价格是 valid_from 日期等于或最近到 use_date 的价格。
以下是我尝试过但没有成功的方法之一。
SELECT prices.price
FROM prices
WHERE (((prices.product_id)=[product_id]) AND ((prices.valid_from)=
(SELECT Max(prices.valid_from) AS valid
FROM prices
WHERE (((prices.product_id)=[product_id]) AND ((prices.valid_from)<=[use_date]));).));
感谢任何帮助!
【问题讨论】:
【参考方案1】:SELECT need_rows.Id
, need_rows.qty
, need_rows.product_id
, (SELECT TOP 1 price
FROM prices
WHERE need_rows.product_id = prices.product_id
AND need_rows.use_date >= prices.valid_from
ORDER BY prices.valid_from DESC) AS currentprice
FROM need_rows;
【讨论】:
以上是关于如何使用子查询填充 Access 查询中的列的主要内容,如果未能解决你的问题,请参考以下文章