我有一个Access数据库,它链接到一个大学数据库项目的Excel中。目标是通过使用Update/SQL查询在导入之前修复不正确/不完整的数据。特别是有一个项,它是包含订单状态的字段。如果一个订单是完整的=完成的,那么如果一个订单缺失了几个部分= Backorder,那么就什么都没有了= Open。我的问题是,在一个PO ID#上有多个部分,这使得很难确定订单是否处于落后状态,因为2/5部分可能已经完成,而3/5部分可能处于落后状态。对于如何强制access自动设置默认订单状态,或者这是一个长sql查询,有什么想法吗?
谢谢
发布于 2014-04-11 18:41:16
使用SQL,您可以使用CASE
语句返回查询以查找订单状态。我不确定您拥有的父表中的表/列名,但是您可能可以从这里调整它(我只是假设身份列):
SELECT P.Id, P.Name, "Status" =
CASE
WHEN R.QuantityReceived < I.QuantityOrdered THEN 'Backorder'
WHEN R.QuantityReceived = I.QuantityOrdered THEN 'Complete'
WHEN R.QuantityReceived > I.QuantityOrdered THEN 'Open'
END
FROM PurchaseOrders P INNER JOIN POItem I on P.PurchaseOrderId = I.PurchaseOrderId
INNER JOIN POReceipt R on I.ItemId = R.ItemId
因此,首先您需要加入您的表来获取相关的记录(这也假设每个记录中只有一个),然后使用一个CASE
语句根据字段之间的比较返回您要查找的值。
https://stackoverflow.com/questions/23019511
复制相似问题