20. August 2010 17:21
fiddi hat geschrieben:@Lord_british:
Nicht ganz richtig:
zu einem Sumindex gehört ja immer ein Index, und die entsprechenden Felder, die aufsummiert werden sollen. Da ein Schlüssel so ca. 250Bytes groß werden kann, wären das rein theoretisch 256^250 unterschiedliche Werte, was ausreichen dürfte
NAV rechnet nämlich die Differenz aus dem Wert, der zum höchsten passenden Schlüssel gehört und dem des niedrigsten passenden Schlüssel als Bewegung aus.
Gruß, Fiddi
Das verstehe ich nicht.
Auch wenn es doof klingt, aber ich dachte NAV geht nach dem Algorithmus:
Setze Filter über einen Datensatzbereich,
Suche ersten und letzten gefilterten Datensatz (ich nenne den ersten n-ten, den letzten n + m - ten),
Schau nach welcher Wert in der Spalte namens SumIndex bei dem n+m -ten Datensatz steht
Schau nach welcher Wert in der Spalte namens SumIndex bei dem n-1 -ten Datensatz steht
Bilde die Differenz aus dem vor-ersten nachgeschauten und dem zweiten nachgeschauten Wert, d.h. Wert an der Stelle n+m minus Wert an der Stelle n-1.
Wo kommt nun dein Schlüssel mit 250 Byte ins Spiel? Schlüssel ist doch nur dazu da, um Datensätze nach 1 .. n Kriterien aufsteigend, absteigend zu sortieren?
Ich dachte immer, dass NAV bei allen Posten im Hintergrund die Summe speichert und wenn ich dann nen Filter setze und per FlowField was aufsummieren möchte, dann sagt NAV z.B. SumIndex-€uro-Wert / oder Stück-Wert / an der Stelle Artikelposten Lfd.Nr. XYZ (n+m -te Stelle) minus SumIndex-€uro-Wert an der Stelle Artikelposten Lfd.Nr. ABC (n - 1 -te Stelle) = Summe aller Nicht-SumIndex-€uro-Einzelwerte von n bis n+m -ter Stelle.
Und die Summensumme über alle Artikelposten kann durchaus die 4 Billionen sprengen?
edit: oder versteh ich SIFT total falsch?
http://i.msdn.microsoft.com/dynimg/IC254339.gifDenn in der Grafik ist der Filter über alle 50020er Datensätze. Aber zum Rechnen greift NAV auf den Datensatz, der VOR dem niedrigsten innerhalb des Filters liegt, damit er die Summe 300 kriegt. Dann greift NAV auf den höchsten Datensatz, aber der noch innerhalb des Filters liegt mit der Summe 1000.
Daraus bildet NAV die Differenz.
EDIT 2: wobei, wenn ich im Objektdesigner irgend eine Postentabelle öffne, seh ich nirgends ein Feld, wo die Summen gespeichert werden. Ist das ein Geheimfeld oder wo genau speichert NAV die Zwischensummen?