【发布时间】:2010-11-15 05:30:19
【问题描述】:
现在我想更新表格。假设,我有 PurchaseOrder 和 PurchaseOrderDetails。
我在 PurchaseOrder 表中有一个名为 Status 的字段,在 PurchaseOrderDetails 中有一个 Matched_Status 字段。如果我们开具发票时所有购买的物品数量和金额都相同,我需要将状态字段更新为“1”。如果 PurchaseItems Quantity 或 Amount 不匹配,我需要将 Status 更新为“5”。
对于 PurchaseOrderDetails 中的 Matched_Status,默认为“0”。如果 Items Quantity 和 Amount 相同,我需要在 PurchaseOrderDetails 中将“1”更新为 Matched_Status。我可以更新 PurchaseOrderDetails。我面临的订单是更新到 PurchaseOrder。
我有一系列采购订单发票号
我使用数组计数进行迭代,并使用以下语句更新 PurchaseOrder 表中的状态字段。
UPDATE PurchaseOrder SET Status = CASE WHEN ((SELECT COUNT(*) FROM PurchaseOrderDetail WHERE CoID = 'SampleCoID' AND Matched_Status = 0 AND PurchaseOrderNo='PONo') <> (SELECT MAX(ItemsNo) FROM PurchaseOrderDetails WHERE AND Matched_Status = 0 AND PurchaseOrderNo='PONo')) THEN 5 AND 1 END WHERE CoID = 'SampleCoID' AND PurchaseOrderNo='PONo'
注意:ItemsNo 字段保存为 PurchaseOrderDetails 保存的 PurchaseItems 编号。如果我们购买 3 件商品,Max(ItemsNo) 将为 3。 我用经典的asp编写语句和循环。你们能告诉我上面的语句有什么问题吗?以及经典asp的示例代码。
提前致谢! 红魔队
【问题讨论】:
-
如果我理解您的问题正确 - 如果 PurchaseOrder 表中的 Quantity 和 Amount 字段与 Quantity 和 Amount 字段 Invoice 表中的相同,您希望将 PUrchaseOrder 表中的状态更新为“1”。那正确吗?提供 PurchaseOrder、PurchaseOrderDetails 和 Invoice 表的表结构。
标签: sql sql-server-2008 asp-classic