现在我要更新表格。假设我有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
答案 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
我不知道确切的表名和列名。如果您提供表格结构,可能还有示例数据和输出,那么我可以提供更好的答案。