Mirko
Hallo und guten Abend. Ich eine DB (Kontakteliste) erstellt, die Eltern (Tabelle1) und Kinder (Tabelle2) usw. enthält. Ich hätte gern eine kleine Statistik zum Alter der Kinder. Diagrammversuche sind leider gescheitert, weil ich die Anzahl zum jeweiligen Alter nicht erstellen konnte. Gruppieren zeigt keine schöne Sortierung (1, 10, 11 ...2, 21, 22 etc.). Kann ich da bitte mal eine Tipp bekommen oder einen Hinweis. Vielleicht gibt es schon einen Thread damit, den ich trotz Suche nicht gefunden habe. Vielen Dank, Mirko
3 Antworten
-
Hallo Mirko, die dargestellte Sortierfolge deutet auf Textwerte, bei denen zeichenweise verglichen und sortiert wird (deshalb "11" kleiner "2"). Um numerisch korrekt zu sortieren (11 größer 2) braucht man Zahlen, also numerische Werte.
Von daher stellt sich die Frage: Wie wird das Alter berechnet? Oder wird es gar nicht berechnet, sondern steht als Ziffernfolge in einem Datenfeld vom Typ Text? Dann könnte man ein Funktionsfeld mit folgender Formel erstellen und danach sortieren/gruppieren:
number(TEXTFELD)
Oder ist es vielleicht sogar ein Auswahlfeld? Dann wäre die Formel:
number(text(AUSWAHL))
Wie auch immer: Das Zählen von Datensätzen, die eine bestimmte Alterszahl beinhalten, in einern nicht verknüpften Tabelle funktioniert prinzipiell folgendermaßen:
let myAlter := WERT;
cnt(select Tabelle2 where ALTER = myAlter)
Wobei ALTER und myAlter vom selben Format sein müssen, also entweder beides Texte oder beides Zahlen. Falls dir das nicht weiterhilft, müsstest du dein Problem noch mal etwas genauer beschreiben.
-
Hallo. Danke für die Antwort. Ich habe ein Datumsfeld für Geburtstage und ein Zahlenfeld für das Alter. Im Datumsfeld ist ein Script unter „Nach Änderung folgendes Script ausführen“ welches „Alter :=age(Geburtstag)“ heißt. Das ergibt dann die „falsche“ Sortierung. Dann habe ich jetzt noch in das Script für jede einstellige Altersangabe „if Alter =1 then Alter :=„01““ etc. geschrieben. Das regelt die Sortierung, sieht aber nicht elegant aus. Ich habe, durch Deine Anregung, das Altersfeldformat auf ein „Berechnungsfeld“ umgestellt und das Script dort eingesetzt und damit ging es. Die Berechnung hat ebenfalls gut funktioniert. Danke. Mirko
-
'n Abend. Ja, das sieht alles sehr danach aus, dass es sich bei dem Feld 'Alter' um ein Textfeld handelte. Das würde die Probleme erklären. Ein Berechnungsfeld zu nehmen, ist aber auch aus einem anderen Grund sinnvoller: Wenn man die Zahl nur einmalig "Nach Änderung" des Datums in ein Datenfeld überträgt, egal ob Text oder Zahl, dann bleibt sie unverändert. Nicht älter zu werden, wünschen sich zwar viele Menschen, aber es entspricht halt nicht der Realität. ;)
Also, nur nochmal der Vollständigkeit halber: Wenn ein Datumsfeld mit dem Geburtsdatum vorliegt, dann genügt ein einfaches Berechnungsfeld mit der Funktion
age(Geburtstag)
Dann hat man automatisch immer das aktuelle Alter als Zahl und kann nach diesem Feld auch in numerischer Reihenfolge sortieren, gruppieren und was man sonst noch machen will.
Content aside
- vor 5 JahrenZuletzt aktiv
- 3Antworten
- 1100Ansichten