我有一个扁平数据集,其中包括订单#,发货#和 ShippingCharges 。每个订单可以有多个货件,但是在订单级别收取运费。这是一个示例数据集:
1, 1, $5.00
2, 1, $6.00
2, 2, $6.00
3, 1, $10.00
3, 2, $10.00
3, 3, $10.00
4, 1, $4.00
如您所见,数据集中的每个货件都会重复订单 ShippingCharges 。我需要提出一个查询,当订单上有多个货件时,将 ShippingCharges 设置为0。生成的数据集如下所示:
1, 1, $5.00
2, 1, $6.00
2, 2, $0.00
3, 1, $10.00
3, 2, $0.00
3, 3, $0.00
4, 1, $4.00
请务必注意,货件编号数字并非全部重置为1。我在样本数据集中做了这个,以便更容易理解。 货件#实际上是一个连续的整数,每次创建货件时都会递增,因此简单的UPDATE dataset SET ShippingCharges=0 WHERE Shipment# > 1
不答案。
如果订单的出货次数超过1次,我似乎需要执行UPDATE
,但仅适用于出货数大于订单的最低出货量#的行。
任何想法可能是什么样的,特别是对于Microsoft Access?
答案 0 :(得分:2)
UPDATE数据集SET ShippingCharges = 0 WHERE Shipment#> 1是不 答案。
当货件#与订单号的最小货件#不匹配时,请将费用设置为零。
UPDATE dataset
SET ShippingCharges=0
WHERE [Shipment#] <> DMin("[Shipment#]", "dataset", "[Order#]=" & [Order#])
如果 Order#字段是文本数据类型,请在第三个DMin
参数( Criteria )中添加引号:
DMin("[Shipment#]", "dataset", "[Order#]='" & [Order#] & "'")
答案 1 :(得分:0)
这是用Oracle编写的,所以不确定你是否可以在Access中做类似的事情。 子选择到表格查看它是否是最小装运然后您使用装运费用或0输出。
WEB-INF/lib