製品レベルの詳細とともにトランザクション販売 AMT をプルしたい小売 DB があります。
残念ながら、SALE_AMT 列は商品別の売上ではなく、トランザクションの総売上高であることに気付きました。このため、私の SALE_AMT は、一意のトランザクション ID が表示された回数 (その 1 回のトランザクションで購入された製品の数に基づく) だけ重複しています。
これに対処し、正確なトランザクション Sale_AMT を取得する最善の方法は、SALE_AMT / 特定のトランザクション ID が発生する回数で AVG を実行することだと思います。しかし、私はそれを行う方法を理解するのに苦労しています。私のSQLは以下です:
WITH PRODUCT_CTE AS (
...
)
SELECT
A.TRANS_UNIQUE_KEY, //Unique Transaction Identifier//
...
A.SALE_AMT, // This is the field for SALE_AMT showing the entire transaction SALE AMT and duplicated for each product
...
D.PRDCT_DESC,
...
FROM "tablename"A
LEFT OUTER JOIN "tablename"G
ON A.DT_SKEY = G.DT_SKEY
LEFT OUTER JOIN "tablename"H
ON A.TM_SKEY = H.TM_SKEY
LEFT OUTER JOIN "tablename"C
ON A.STORE_KEY = C.STORE_KEY
INNER JOIN "tablename"E
ON A.TRANS_TYP_KEY = E.TRANS_TYP_KEY
LEFT OUTER JOIN "tablename"F
ON A.CUST_KEY = F.CUST_KEY
LEFT OUTER JOIN PRODUCT_CTE D
ON A.TRANS_UNIQUE_KEY=D.TRANS_UNIQUE_KEY
WHERE YEAR(G.FISCAL_DT)>= YEAR(CURRENT_DATE())-1
ORDER BY G.FISCAL_DT DESC