Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Laufende Summen/Laufende Nummern

Begonnen von lisa1992, Mai 11, 2016, 16:10:09

⏪ vorheriges - nächstes ⏩

lisa1992

Hallo,

ich muss mich derzeit in Access einarbeiten und habe noch nicht allzu viel Erfahrung, daher hoffe ich, ihr erfahrenen Hasen könnt mir weiter helfen ;-)

Ich habe in einer Abfrage eine Spalte mit eindeutiger ID und einer Menge. Dabei kommen Mengen mehrfach vor. Nun möchte ich eine neue fortlaufende Nummer erstellen, nachdem die Daten nach der größe der Menge sortiert wurden. Bei Gleichheit der Menge soll die eindeutige ID die Reihenfolge bestimmen. Die fortlaufende Nummer soll ohne Doppelte vergabe und Lücke entstehen.

Mein Ansatz:
LaufNummer: DomAnzahl("Id";"Abfrage";"Menge<" & [Menge])+1

Dabei entstehen aber doppelte und Lücken.

Kann mir jmd weiterhelfen?

Liebe Grüße
Lisa


DF6GL

Hallo,

erkläre bitte zunächst den Sinn des Unterfangens...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Beaker s.a.

Hallo Lisa,
Standardantwort auf deine Frage:
Schau hier: http://www.donkarl.com?FAQ3.11
Wobei Franz' Frage vielleicht auch nicht unbeantwortet bleiben sollte.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

lisa1992

@Beaker: Danke, aber da habe ich ja meinen Lösungsansatz her. Aber ich komme damit eben nicht weiter.

@DF6GL: Ich möchte danach die Mengenanteile an der Gesamtmenge Kumulieren. Dabei müssen die Mengen aber der Größe nach Sortiert sein.

Liebe Grüße
Lisa

ebs17

Für eine Sortierung benötigt man keine laufende Nummer:
ORDER BY Menge DESC, ID

Für eine laufende Summe in einer Abfrage benötigt man keine eingestellte Sortierung, weil in Abfragen Reihenfolgen allermeist nicht verwendet werden und daher überflüssig sind.

Wenn es gleiche Mengen gibt, brauchst Du mindestens ein zweites Kriterium zur Unterscheidung, die ID wäre da geeignet, ist aber auch etwas willkürlich.
Zum Vergleich müsste dann aus Menge und ID ein Kunstwert erzeugt werden, dessen Berechnung man aus den vorhandenen Werten von Menge und ID ableiten müsste.
Beispiel:
LaufSumme: DomSumme("Menge";"Abfrage";"Menge + ID / 10000 <" & [Menge] * [ID] / 10000)

Mit freundlichem Glück Auf!

Eberhard

DF6GL

Hallo,
Zitat
Ich möchte danach die Mengenanteile an der Gesamtmenge Kumulieren. Dabei müssen die Mengen aber der Größe nach Sortiert sein.


Das musst Du näher erklären.  Bei einer Summierung ist es völlig egal, wie die Reihenfolge der Summanden ist.


Selbst wenn die Mengen nach Größe  sortiert werden müssen (??)  , dann könnte gleich der Mengenwert sortiert werden. Dafür ist kein zusätzliches Kennzeichen erforderlich.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

lisa1992

Zitat von: DF6GL am Mai 12, 2016, 08:53:44

Das musst Du näher erklären.  Bei einer Summierung ist es völlig egal, wie die Reihenfolge der Summanden ist.


Selbst wenn die Mengen nach Größe  sortiert werden müssen (??)  , dann könnte gleich der Mengenwert sortiert werden. Dafür ist kein zusätzliches Kennzeichen erforderlich.


Beim Summieren ist die Reihenfolge egal, aber nicht beim Kumulieren.
Wenn ich dann die Prozentualen Mengenanteile der Größe nach habe, kann ich dann sagen:
Alle bis 80% sind A Teile, alle bis 95% B Teile und so weiter.

Ohne zusätzliche Kennzeichen ist doch aber die Reihenfolge über die Menge nicht eindeutig gegeben oder?

Zitat von: ebs17 am Mai 12, 2016, 08:51:33

LaufSumme: DomSumme("Menge";"Abfrage";"Menge + ID / 10000 <" & [Menge] * [ID] / 10000)


Mit diesem Code komm ich der Sache glaube ich schon recht Nahe. Allerdings kommt beim Ausführen folgender Fehler: syntaxfehler (komma) in abfrageausdruck ";"Menge + ID / 10000 <" & [Menge] * [ID] / 10000)

Was bedeudet dies? Habe Versucht mit dieser Str-Funktion das Problem zu beheben: Ergebnis: Fehlermeldung weg, aber im Ausgabefeld steht einfach nur noch Fehler :-(

ebs17

Korrekt, durch die Berechnung entsteht eine Dezimalzahl, und die muss im Kriterium mit Str behandelt werden:
... & Str([Menge] * [ID] / 10000))
Mit freundlichem Glück Auf!

Eberhard

lisa1992

Danke Eberhard! Habe es nun hinbekommen.  :D
Allerdings braucht der Rechner seine Zeit, dabei sind es gerade mal 800 Datensätze.  :-\

Liebe Grüße

Lisa

MaggieMay

Hallo,

versuche es mal mit dieser Variante:
LaufSumme: DomSumme("Menge";"Abfrage";"Menge < " & [Menge] & " OR Menge = " & [Menge] & " AND ID < " & [ID])
Freundliche Grüße
MaggieMay