1
Ich versuche, eine Self-Join verwenden, um eine kumulative Summe zu erhalten. Das Problem besteht darin, dass die Abfrage mehr als 2 Stunden ohne Ergebnis ausgeführt wird. Wie kann ich das beheben?Self Join verursacht Abfrage für immer
Select SUM(A.[GrossWeightKg] - A.[QtyLeftKg])/ 1000 AS DailyUsage
, SUM(a.[GrossWeightKg] - a.[QtyLeftKg])/ 1000 AS Cumulative
FROM [PMECentral].[dbo].[FactActualItemUsage] A
LEFT OUTER JOIN [PMECentral].[dbo].[FactActualItemUsage] ff
ON a.ActualItemUsageSourceId >= ff.ActualItemUsageSourceId
in SQL-Server 2012 Sie so etwas wie 'SUM (a [GrossWeightKg].. - a [QtyLeftKg]) verwenden könnte OVER (ORDER BY ActualItemUsageSourceId Reihen zwischen UNBOUNDED PRECEDING UND AKTUELLE ROW)' ohne Selbst beitreten –
Die Ausdrücke Für DailyUsage und Cumulative sind genau dieselben. - Das ist ein Fehler, nicht wahr? – PhilS
Vermissen Sie eine zusätzliche JOIN-Bedingung für eine ItemId oder etwas Ähnliches? Die Abfrage, so wie sie ist, wird eine große Menge an Ausgabe erzeugen und, abhängig von dem Datenvolumen in den Tabellen, für einige Zeit laufen. – PhilS