試圖查詢訂單標題和明細表,按月計算結果並且遇到數據模型限制。本質上,我想審覈我們的ETL過程,以確保標題級別的數據從Detail級別正確彙總。 TRANS_ID關鍵字段表示一個訂單,所以自然地,每個TRANS_ID的Detail表格將有多個行。SQL - 查詢不含複製的訂單標題和訂單明細
表ORDER_HEADER有(爲便於說明):
TRANS_ID
TRANS_DT (DD-MON-YY)
PROFIT
表ORDER_DETAIL有:
TRANS_ID
TRANS_LINE_NO
LINE_ITM_PROFIT
我要回答的問題是:在每月級別是什麼,從利潤總額標題和細節的總利潤是多少?我的結果應該有三列:「TRANS_DT月」,「HDR利潤」和「DTL利潤」
如果我在ORDER_HEADER.TRANS_ID = ORDER_DETAIL.TRANS_ID和GROUP BY「Month of ORDER_HEADER.TRANS_DT」我顯然會重複Header值。
我的數據量(在Oracle RDBMS中)大約是150MM標題記錄和600MM以上的詳細記錄,所以最好的解決方案在加入標題之前不會將整個Detail表加到「TRANS_ID」級。
在我看來,這將是更好的,如果order_header在不同的地方有兩個不同的別名;) – knagaev