Hệ thống ERP SAP Business One (SAP B1) hiện lưu các thay đổi thông tin giá bán của các mặt hàng trong bảng ITM1 và chi tiết các lần thay đổi được lưu ở bảng AIT1. Do đó, câu query giúp truy vết các thay đổi về giá như sau:
Câu truy vấn dùng để truy vết thay đổi giá dành cho phiên bản sử dụng SAP HANA
CREATE COLUMN TABLE "Pricetrack" AS ( SELECT DISTINCT T0."ItemCode", T1."PriceList", T2."ListName", t1."Currency", T1."Price", T0."UpdateDate", T1."LogInstanc" FROM AITM T0 INNER JOIN AIT1 T1 ON T0."ItemCode" = T1."ItemCode" AND t0."LogInstanc" = t1."LogInstanc" LEFT OUTER JOIN AIT1 T3 ON T1."ItemCode" = T3."ItemCode" AND t1."PriceList" = T3."PriceList" AND t1."LogInstanc" > t3."LogInstanc" INNER JOIN OPLN T2 ON T1."PriceList" = T2."ListNum" WHERE (t1."Price" <> t3."Price") UNION SELECT DISTINCT T0."ItemCode", T1."PriceList", T2."ListName", t1."Currency", T1."Price", T0."UpdateDate", T1."LogInstanc" FROM AITM T0 INNER JOIN AIT1 T1 ON T0."ItemCode" = T1."ItemCode" AND t0."LogInstanc" = t1."LogInstanc" LEFT OUTER JOIN AIT1 T3 ON T1."ItemCode" = T3."ItemCode" AND t1."PriceList" = T3."PriceList" AND t1."LogInstanc" > t3."LogInstanc" INNER JOIN OPLN T2 ON T1."PriceList" = T2."ListNum" WHERE (t1."Price" = t3."Price" AND T1."Currency" <> T3."Currency") UNION SELECT DISTINCT T5."ItemCode", T5."PriceList", T2."ListName", t5."Currency", T5."Price", '', T5."LogInstanc" FROM AITM T0 INNER JOIN AIT1 T1 ON T0."ItemCode" = T1."ItemCode" AND t0."LogInstanc" = t1."LogInstanc" LEFT OUTER JOIN AIT1 T3 ON T1."ItemCode" = T3."ItemCode" AND t1."PriceList" = T3."PriceList" AND t1."LogInstanc" > t3."LogInstanc" RIGHT OUTER JOIN OPLN T4 ON T1."PriceList" <> T4."ListNum" INNER JOIN ITM1 T5 ON T4."ListNum" = T5."PriceList" INNER JOIN OPLN T2 ON T1."PriceList" = T2."ListNum" WHERE T4.BASE_NUM <> T4."ListNum" AND T5."Price" <> 0 EXCEPT SELECT DISTINCT T0."ItemCode", T1."PriceList", T2."ListName", t1."Currency", T1."Price", T0."UpdateDate", T1."LogInstanc" FROM AITM T0 INNER JOIN AIT1 T1 ON T0."ItemCode" = T1."ItemCode" AND t0."LogInstanc" = t1."LogInstanc" LEFT OUTER JOIN AIT1 T3 ON T1."ItemCode" = T3."ItemCode" AND t1."PriceList" = T3."PriceList" AND t1."LogInstanc" > t3."LogInstanc" INNER JOIN OPLN T2 ON T1."PriceList" = T2."ListNum" WHERE t1."Price" = t3."Price" AND t1."Currency" = T3."Currency"); SELECT * FROM "Pricetrack" ORDER BY "ItemCode", "PriceList", "LogInstanc" ; DROP TABLE "Pricetrack";
Câu truy vấn cho phiên bản SQL, vui lòng xem thêm tại đây
————————————
Tài nguyên khác để gia tăng kiến thức và hiểu biết của bạn về hệ thống ERP SAP Business One