Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Self join und Abs()

  Alt 30. Aug 2011, 09:19
-Du solltest zunächst einen sauberen Join hinbekommen.
Andernfalls permutieren die Mengen und Du erhältst keinen Geldstrom, sondern eine wunderbare Geldvermehrung.
- Dann wäre zu klären, ob es ein geschlossenes Kontensystem ist oder nicht und wie Du dann die Einzelbuchungen "nach innen" und "nach außen" bearbeitest und bewertest.
- Und was ist ein "Geldstrom"? Deine Abfrage stellt scheinbar einfach ein Buchungspaar nebeneinander.

Der "größer" Vergleich und der Betragsjoin hinken ziemlich. Was ist mit identischen Beträgen im Betrachtungszeitraum? Die werden bei dem Statement alle (jeder mit jedem ) gejoint! Hast Du Kontrolle über das Verfahren, mit dem die Buchungen erzeugt werden? Das würde evtl. einen Ansatzpunkt über die ID liefern. Wenn die Buchungsoperation 100% atomar ist und eine ordentliche sequenz verwendet wird und später niemand in den Daten "rumfummelt", müsstest Du Buchungspaare an aufeinanderfolgenden ID erkennen und joinen können. Auch der Verwendungszweck könnte ein Kriterium sein. Der sollte zumindest für ein Buchungspaar identisch sein, eindeutiges Joinkriterium wäre er aber auch nicht.

Wenn der Join exakt ist (nicht mehr permutiert) wirst Du schon einen Performance Unterschied bemerken. Dann kannst Du mit Tuning beginnen: Indizes, Queryumstellung, Optimizerregeln (gibts die unter SQLite?)

Grundsätzlich wäre noch die Frage, ob Du nur auswerten willst/kannst oder ob Du auch Einfluss auf das Datenmodel hast.

OT: Monopoly gibt es schon als Computerspiel
Gruß, Jo
  Mit Zitat antworten Zitat