Access如何根据数据日期查询另外一个表中的日期小于等于的最近的记录 15
因为要做一些数据,涉及到大量取单价的计算,请教高手Access实现的查询方法。1、有如下单价表,专门记录从什么时候开始单价变更:生效日期供应商物料价格单位定价记录号201...
因为要做一些数据,涉及到大量取单价的计算,请教高手Access实现的查询方法。
1、有如下单价表,专门记录从什么时候开始单价变更:
生效日期 供应商 物料 价格 单位 定价记录号
2013-3-8 A0002 PB00 1.07 个 336955
2013-7-1 A0002 PB00 1.1 个 366386
2013-7-12 A0002 PB00 2.1 个 336956
2、有如下收料数量表:
收料日期 供应商 物料 收料数量 单位
2013-3-9 A0002 PB00 200 个
2013-7-5 A0002 PB00 280 个
2013-7-22 A0002 PB00 1200 个
2013-8-1 A0002 PB00 2500 个
3、如何得到如下的收料金额查询结果呢?
收料日期 供应商 物料 收料数量 单位 定价记录号 价格 AMT
2013-3-9 A0002 PB00 200 个 336955 1.07 214
2013-7-5 A0002 PB00 280 个 366386 1.1 308
2013-7-22 A0002 PB00 1200 个 336956 2.1 2520
2013-8-1 A0002 PB00 2500 个 336956 2.1 5250
group by 收料表.ID, 收料表.收料日期,收料表.物料, 收料表.收料数量, 收料表.单位, 单价表.生效日期, 单价表.价格, 单价表.定价单位, 单价表.定价记录号
ORDER BY 收料表.收料日期, 单价表.生效日期 DESC) AS HZ
WHERE (((HZ.收料日期)=[HZ].[收料日期]) AND ((HZ.物料)=[HZ].[物料]) AND ((HZ.收料数量)=[HZ].[收料数量]) AND ((HZ.单位)=[HZ].[单位]))
GROUP BY HZ.收料日期, HZ.物料, HZ.收料数量, HZ.单位; 展开
1、有如下单价表,专门记录从什么时候开始单价变更:
生效日期 供应商 物料 价格 单位 定价记录号
2013-3-8 A0002 PB00 1.07 个 336955
2013-7-1 A0002 PB00 1.1 个 366386
2013-7-12 A0002 PB00 2.1 个 336956
2、有如下收料数量表:
收料日期 供应商 物料 收料数量 单位
2013-3-9 A0002 PB00 200 个
2013-7-5 A0002 PB00 280 个
2013-7-22 A0002 PB00 1200 个
2013-8-1 A0002 PB00 2500 个
3、如何得到如下的收料金额查询结果呢?
收料日期 供应商 物料 收料数量 单位 定价记录号 价格 AMT
2013-3-9 A0002 PB00 200 个 336955 1.07 214
2013-7-5 A0002 PB00 280 个 366386 1.1 308
2013-7-22 A0002 PB00 1200 个 336956 2.1 2520
2013-8-1 A0002 PB00 2500 个 336956 2.1 5250
group by 收料表.ID, 收料表.收料日期,收料表.物料, 收料表.收料数量, 收料表.单位, 单价表.生效日期, 单价表.价格, 单价表.定价单位, 单价表.定价记录号
ORDER BY 收料表.收料日期, 单价表.生效日期 DESC) AS HZ
WHERE (((HZ.收料日期)=[HZ].[收料日期]) AND ((HZ.物料)=[HZ].[物料]) AND ((HZ.收料数量)=[HZ].[收料数量]) AND ((HZ.单位)=[HZ].[单位]))
GROUP BY HZ.收料日期, HZ.物料, HZ.收料数量, HZ.单位; 展开
1个回答
展开全部
试试:
select *,
(select top 1 定价记录号 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) as 定价记录号,
(select top 1 价格 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) as 价格,
(select top 1 价格 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) * 收料数量 as AMT from 收料数量表
祝你成功!
select *,
(select top 1 定价记录号 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) as 定价记录号,
(select top 1 价格 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) as 价格,
(select top 1 价格 from 收料数量表 where 单价表.供应商=收料数量表.供应商 and 单价表.物料=收料数量表.物料 and 生效日期<=收料日期 from 单价表 order by 生效日期 desc) * 收料数量 as AMT from 收料数量表
祝你成功!
追问
您好 好像不行哦
追答
什么问题呀?
没有拼写错误吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询