Neuigkeiten:

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

Mobiles Hauptmenü

Summe in Abfrage ohne Nullwerte

Begonnen von Werner I, November 20, 2016, 14:38:40

⏪ vorheriges - nächstes ⏩

Werner I

Hallo zusammen,
ich habe eine Abfrage mit 4 Spalten mit jeweils unterschiedlichen Datumwerten. Habe diese Daten in einer extra Spalte über den Generator auf nur das Jahr verringert. Klappt gut.

Wenn ich nun am Ende der Abfrage die Summe errechnen lassen will, so werden immer auch die Felder mitgezählt, die keinen Eintrag haben.Komischerweise wird für die Spalte mit den kompletten Daten die Summe richtig ermittelt. Nur nicht die Spalte, in der nur die Jahreszahl steht.

Habe es auch schon mit "ist nicht Null" als Kriterium probiert, leider nix. Was mache ich falsch? Hoffentlich kann mir jemand helfen.

Vielen Dank
Werner

MzKlMu

Hallo,
ich verstehe nicht, um welche Summierung es geht ? Ich sehe hier kein Feld das man summieren könnte.

Abgesehen davon, ist hier das Datenmodell zu überarbeiten. Was machst Du, wenn noch eine weitere Vermittlung hinzukommt. "Und noch eine weitere Vermittlung", oder "Vermittlung4" ?
Gruß Klaus

Werner I

Hallo Klaus,

ich möchte aus Spalte "Ausdr1" die Anzahl der Jahre; wenn ich in der Spalte z.B. "2015" filtere, dann wird mir die Richtige Anzahl angegeben; bei 2016 genauso. Aber wenn ich alle angebe, werden auch die Nullwerte mit addiert.

So wie es momentan aussieht, werden keine weiteren Abfragen dazukommen.

Gruß
Werner

DF6GL

Hallo,

vermutlich wird "Summierung" und "Addition" durcheinandergewürfelt.

Anstelle der Formatfunktion (die einen String und keine Zahl liefert) wäre die Year()-Funktion besser geeignet:


Ausdruck1:  Jahr([Das_Datumsfeld])

Zudem sollte auf Leer- und Sonderzeichen in Namen DRINGEND verzichtet  und die Bedenken von Klaus zur Normalisierung beachtet werden.
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

Werner I

Hallo Franz,

danke für Deine Info. Ich habe das Problem, dass ich die Tabelle für eine gemeinnützigen Verein mache und die Tabellennamen so klar machen muss, dass sie auch ein "unbedarfter" verstehen und ergänzen kann.

Ich brauche in diesem konkreten Fall für eine Statistik die Anzahl der Einsätze für jedes Jahr; jeder Mitarbeiter kann bis max. vier Einsätze haben.

Danke nochmals für die Hilfe

Viele Grüße
Werner

MzKlMu

Hallo,
Zitatjeder Mitarbeiter kann bis max. vier Einsätze haben
Eines Tages hat doch einer 5 Einsätze. Und eine Anzahl ist keine Summe.
Die Einsätze sind in einer extra Tabelle zu führen mit einem Fremdschlüssel zum Mitarbeiter und dem Datum des Einsatzes. Jeder Einsatz ein Datensatz. Es gibt dann keine leeren Felder mehr.

Eine einfache über den Mitarbeiter und Jahr gruppierte Abfrage liefert ohne weitere Zwischenschritte direkt die Anzahl der Einsätze.
Eine Datenbank erfordert einen korrekten normalisierten Aufbau. Du solltest das umstrukturieren. Die Tabellen sollte ohnehin niemand sehen, Eingaben erfolgen über Formulare. Ich glaube auch nicht, dass die gewünschte Auswertung mit dem gegenwärtigen Aufbau mit vertretbarem Aufwand möglich ist.

PS:
Warum nennst Du die Einsätze Vermittlung ?
Gruß Klaus

Werner I

Hallo,

es gibt Bedürftige (sind in einer Tabelle "Bedürftige" gespeichert; dann gibt es Helfer (diese sind in einer Tabelle "Helfer" gespeichert. Jeder Bedürftige kann von bis zu 4 verschiedenen Helfern  betreut werden. Diese habe ich in der Tabelle Bedürftige über Beziehungen der Tabellen aufgenommen. Und es klappt auch gut.

Nur wie komme ich an die Gesamtzahl der Vermittlungen pro Jahr? Die Spalten mit den Komplettdaten lassen sich ja leider nicht nach nur Jahr filtern, daher der Umweg über die Jahreszahl.

Mache ich hier Denkfehler? Bin mit Access nicht so stark vertraut.

Gruß
Werner

MzKlMu

Hallo,
ZitatMache ich hier Denkfehler?
ja, Du denkst nicht Datenbank, Du denkst Excel. Du benötigst eine extra Tabelle zur Erfassung der Einsätze, mit Fremdschlüssel zum Bedürftigen, Fremdschlüssel zum Helfer und einem Datumsfeld. Jeder Einsatz gibt ein Datensatz. Das heißt, die Einsätze stehen untereinander und nicht nebeneinander. Erst dann kannst Du wie gewünscht auswerten. Es gibt dann auch keine leeren Felder mehr. Das wird viel einfacher als mit dem jetzigen Aufbau.

Sind die Helfer den Bedürftigen fest zugeordnet oder ist das frei, also heute hilft Meier dem Müller und morgen hilft er dem Schneider ?

Sind
Gruß Klaus

Werner I

Hallo Klaus,

jeder der  vielen Bedürftige kann jeden Helfer bekommen, max. jedoch bis heute 4 verschiedene; wie es die Praxis seit 2015 gezeigt hat, reicht das aber auch aus. Und die Abfragen und Berichte, die es bis jetzt gibt, funktionieren auch gut auf die Statistik pro Jahr.

MzKlMu

#9
Hallo,
und was glaubst Du, warum die Statistik nicht funktioniert ?
Ich hätte kein Tipp für Dich, wie Du die Statistik mit dem vorliegenden Aufbau machen könntest.
Mit der vorgeschlagenen Tabelle ist das ganz einfach. Warum wehrst Du Dich so dagegen ?
Eine Datenbank erfordert nun mal einen bestimmten (normalisierten) Aufbau besonders dann, wenn bestimmte Auswertungen benötigt werden.
Wahrscheinlich wäre es auch sinnvoll, Bedürftige und Helfer in einer Tabelle zu führen, mit einem Kennzeichen ob Helfer oder Bedürftiger. Würde die Sache noch weiter vereinfachen.

Kannst Du bitte mal ein Bild des Beziehungsfensters zeigen, aber so, dass man alle Felder und alle Tabellen sieht.

Im Anhang findest Du ein Beziehungsbild wie es sein sollte. So wäre ein korrekter Aufbau. Damit wäre völlig problemlos jede Art von Auswertung möglich.
Gruß Klaus

Werner I

Hallo Klaus,

erst einmal vielen Dank für Deine Mühe, die Du Dir machst. Habe mal ein Bild meiner Beziehungen angehängt; sieht sicher auf den ersten Blick für einen Könner chaotisch aus. Institutionen sind z.B. AWO oder Caritas. Und alles muse unter einen Hut.

Da ich nicht der fitteste in Access bin, sah es für mich (da es soweit auch immer alles geklappt hat) "normal" aus.

MzKlMu

Hallo,
das sieht nicht nur chaotisch aus, das ist chaotisch. Wer soll da noch durchblicken?
Die Beziehungen sind ja auch nur teilweise zu verfolgen. Das Chaos beginnt schon bei der fehlenden referentiellen Integrität, die unerlässlich ist. Mit der vorgeschlagenen Tabelle für die Erfassung der Einsätze würden schon mal die virtuellen Tabellen Helfer_1 bis 3 wegfallen. Das dürfte mit anderen virtuellen Tabellen ähnlich sein. Die vielen mehrwertigen Felder machen den Überblick auch nicht einfacher. Die DB könnte man ganz sicher mit besseren Funktionalitäten deutlich einfacher aufbauen. Mehrwertfeld sind die Kombis wo man was anhaken kann. Die machen auch mehr Probleme als sie nutzen.
Gruß Klaus

Werner I

Hallo Klaus,

werde mich dann doch wohl noch mal dransetzen müssen; aber nicht mehr heute Abend. Muss nun leider los.

Danke erstmal nochmals für Deine Unterstützung.

Lieben Gruß
Werner