【问题标题】:Classic ASP & sqlstatement : How to update 2 and more Master & detail records with Classic ASP?经典 ASP 和 sqlstatement:如何使用经典 ASP 更新 2 个及更多主记录和详细记录?
【发布时间】: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


【解决方案1】:

当 PurchaseOrder 表中的 Quantity 和 Amount 字段与 Invoice 表中的 Quantity 和 Amount 字段相同时,您可以尝试将 PUrchaseOrder 表中的状态更新为“1”。

UPDATE PurchaseOrder SET Status = 1 
FROM PurchaseOrder PO 
INNER JOIN Invoice I On PO.Quantity = I.Quantity AND PO.Amount = I.Amount

我不知道确切的表名和列名。如果您提供表结构,也许还提供示例数据和输出,那么我可以提供更好的答案。

【讨论】:

  • 谢谢.. Pavanred,我明白了我上面设置的逻辑。
猜你喜欢
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多