经典ASP& sqlstatement:如何更新2和更多Master&经典ASP的详细记录?

时间:2010-11-15 05:30:19

标签: sql sql-server-2008 asp-classic

现在我要更新表格。假设我有PurchaseOrder和PurchaseOrderDetails。

我在PurchaseOrder表中有一个名为Status的字段,在PurchaseOrderDetails中有一个Matched_Status字段。如果我们发出发票时所有的PurchasedItems数量和金额相同,我需要将状态字段更新为“1”。如果PurchaseItems数量或金额不匹配,我需要将状态更新为“5”。

对于PurchaseOrderDetails中的Matched_Status,Deafult为“0”。如果Items Quantity和Amount相同,我需要在PurchaseOrderDetails中将“1”更新为Matched_Status。我可以做PurchaseOrderDetails更新。我面临的订单是更新到PurchaseOrder。

我收到了一系列Purchaseorder Invoice No.

我使用以下语句使用数组计数进行迭代并更新PurchaseOrder表中的Status字段。

    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 Number保存。如果我们购买3件商品,Max(ItemsNo)将为3件。 我用经典的asp编写语句和循环。你能否告诉我上面的陈述和经典asp的示例代码有什么不妥。

提前致谢! RedsDevils

1 个答案:

答案 0 :(得分:1)

如果PurchaseOrder表中的数量和金额字段与数量和金额字段发票表中的相同,则可以在PUrchaseOrder表中将此更新状态设置为“1”。

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

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