1

製品レベルの詳細とともにトランザクション販売 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

商品別取引重複販売例:
商品別取引重複販売例

4

1 に答える 1