我有一个数据集,其格式类似于:
Purchase_Order PO_Spend Receipt_Date
PO1 200,000.00 12/19/2017
PO1 200,000.00 11/20/2017
PO2 30,000.00 2/5/2018
PO2 30,000.00 1/2/2018
PO3 45,000.00 2/7/2018
PO3 45,000.00 11/20/2017
PO3 45,000.00 12/21/2017
该数据集将用于报告目的,我需要将重复的采购订单金额替换为0,以避免最终用户枢转数据集并错误汇总PO_spends。
我希望我的数据集看起来像这样:
Purchase_Order PO_Spend Receipt_Date
PO1 200,000.00 12/19/2017
PO1 0.00 11/20/2017
PO2 30,000.00 2/5/2018
PO2 0.00 1/2/2018
PO3 45,000.00 2/7/2018
PO3 0.00 11/20/2017
PO3 0.00 12/21/2017
有关如何解决的任何想法,请删除此重复项?无论是简单的Access查询,还是SQL for Access或VBA都可以解决问题。
答案 0 :(得分:1)
考虑以IIF
条件包装的相关子查询
SELECT p.Purchase_Order,
IIF((SELECT Count(*) FROM PO_Table sub
WHERE sub.Purchase_Order = p.Purchase_Order
AND sub.Receipt_Date <= p.Receipt_Date) = 1, p.PO_Spend, 0) AS [PO_Spend_Final],
p.Receipt_Date
FROM PO_Table p
ORDER BY p.Purchase_Order, p.Receipt_Date
或者,考虑与DCount
相关的计算:
SELECT p.Purchase_Order,
IIF(DCount("*", "PO_Table", "Purchase_Order='" & p.Purchase_Order
& "' AND Receipt_Date <= #" & p.Receipt_Date & "#") = 1, PO_Spend, 0) As [PO_Spend_Final],
p.Receipt_Date
FROM PO_Table p
ORDER BY p.Purchase_Order, p.Receipt_Date
请确保在所有引用中将 PO_Table 更新为实际的表名。