Chuyên trang đào tạo SAP Business One

Câu query dùng để truy vết thay đổi giá của các mặt hàng trong hệ thống SAP Business One

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

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Scroll to Top