Ich muss wöchentlich aggregierte Daten für den Vertrieb erstellen. Wobei TRNST_QTY
die letzte verfügbare Menge der Schlusswoche ist und PRCHS_QTY
die Summe der Kaufmenge für die jeweilige Woche ist. Ich habe eine Datumsdimension, in der der Datumsschlüssel und der entsprechende Wocheschlüssel vorhanden sind.Neueste Datensätze mit sql
Wenn es eine Woche ist, gibt es keine Transaktion passiert es die letzte Woche dauern sollte TRNST_QTY
und PRCHS_QTY
wird 0
Tabelle 1 (Sales Tabelle) sein:
DT_KEY ITEM TRNST_QTY PRCHS_QTY
20160515 4098 2 1
20160516 4098 10 1
20160601 4098 4 0
20160603 4098 8 0
20160611 4098 6 4
20160616 4098 4 0
20160622 4098 8 0
20160623 4098 2 0
20160714 4098 11 3
Ausgang erforderlich (wöchentliches Aggregat):
Datum & Woche Mapping:
DT_KEY WK_DT_KEY
20160515 20160521
20160516 20160521
20160517 20160521
20160518 20160521
20160519 20160521
20160520 20160521
20160521 20160521
20160601 20160607
20160602 20160607
20160603 20160607
20160604 20160607
und so weiter
Bisher ich in der Lage bin zu folgenden Abfrage aber es ist nur letzte Woche Informationen
select * from
(
SELECT WK_DT_KEY
,ITEM
,sum(PRCHS_QTY) OVER (
PARTITION BY WK_DT_KEY
,ITEM
ORDER BY WK_DT_KEY
,ITEM
) AS PRCHS_QTY
,ROW_NUMBER() OVER (
PARTITION BY ITEM order by a.dt_key desc
) AS RNK
FROM fct_itm a
,DIM_DT DIM_DT
WHERE a.dt_key <= '20170207'
AND DIM_DT.DT_key = a.dt_key
)
where RNK = 1;
Ich will geben zu Vermeiden Sie den prozeduralen Ansatz oder die connect by-Klausel Ich werde jede Hilfe dankbar sein.
Um die vkp-Notizen hinzuzufügen: Verwenden Sie DATE Datentypen !!! – BobC
@vkp Danke! . Es gibt einige Wochen, in denen ich keine Transaktion habe. Ich muss auch die Daten für diese Woche bekommen. Zum Beispiel '20160707' Woche dosent jede Transaktion so sollte es die trnst_qty aus '20160630' Woche und 'PRCHS_QTY' ist Null. – luminita
Was passiert, wenn 2 oder mehr Wochen keine Werte vorhanden sind? Sollten die Werte aus der letzten verfügbaren Woche abgerufen werden? –