2013-02-07 25 views
9

Tôi đang làm việc trong Oracle APEX và tôi muốn cập nhật cột trong báo cáo với một giá trị mới trong bảng sau. Truy vấn báo cáo được hiển thị trong sơ đồ sau được đề cập bên dưới.CẬP NHẬT Cột Bảng với mục nhập mới

TABLE "VENDOR_ACCOUNT" 
( "VEN_ACCOUNTID"  NVARCHAR2(10), 
    "VEN_REGNO"   NVARCHAR2(10), 
    "VEN_TXDATE"   DATE, 
    "VEN_INVOICE_REFNO" NVARCHAR2(10), 
    "TOTALAMOUNT"  NVARCHAR2(10), 
    "IN"     NUMBER(10,0), 
    "OUT"    NUMBER(10,0) 
) 

SELECT "VEN_ACCOUNTID" , 
     "VEN_REGNO" , 
     "VEN_TXDATE" , 
     "VEN_INVOICE_REFNO" , 
     "TOTALAMOUNT" , 
     "IN", 
     "OUT", 
     "TOTALAMOUNT"+"IN" as "CREDIT", 
     "TOTALAMOUNT"-"OUT" as "DEBIT" 
FROM Vendor_Account; 

buộc Kịch bản: Tôi muốn cập nhật TotalAmount Cột với DebitCredit. Giá trị Debit hoặc Credit mới phải được hiển thị trong cột TotalBalance trên bản ghi tiếp theo. enter image description here

Trả lời

5

Bạn có thể sử dụng Oracle analyitic chức năng LAG:

Select "VEN_ACCOUNTID" , 
     "VEN_REGNO" , 
     "VEN_TXDATE" , 
     "VEN_INVOICE_REFNO" , 
     "TOTALAMOUNT" , 
     "TOTALAMOUNT" + lag("IN",1) over (ORDER BY "VEN_ACCOUNTID") 
         - lag("OUT",1) over (ORDER BY "VEN_ACCOUNTID") AS "NEW_TOTALAMOUNT", 
     "IN", 
     "OUT", 
     "TOTALAMOUNT"+"IN" as "CREDIT", 
     "TOTALAMOUNT"-"OUT" as "DEBIT" 
FROM Vendor_Account; 
+0

@alen .. Nó vẫn đem lại cho tôi câu trả lời tương tự như tôi đã đề cập nó trong sơ đồ ở trên .. không có thay đổi đang được thực hiện ! –

+0

Sử dụng chức năng LAG. Chơi xung quanh với nó và xem những gì nó làm. Khi tôi đã viết truy vấn, bạn sẽ nhận được cột mới "tổng mới" trong báo cáo APEX. –

+0

Tôi đã làm ... nhưng vẫn không hoạt động –

5
Select 
    "VEN_ACCOUNTID" , 
    "VEN_REGNO" , 
    "VEN_TXDATE" , 
    "VEN_INVOICE_REFNO" , 
    "TOTALAMOUNT" AS "OLD_TOTALAMOUNT" 
    "TOTALAMOUNT" + nvl(lag (nvl("IN",0)-nvl("OUT",0)) 
          over (partition by "VEN_REGNO" order by "VEN_ACCOUNTID" 
          ) 
         ,0) AS "TOTALAMOUNT" 
    "IN", 
    "OUT", 
from Vendor_Account; 
Các vấn đề liên quan