Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: hajott am August 03, 2019, 15:46:35

Titel: Quotenbildung/Rundung
Beitrag von: hajott am August 03, 2019, 15:46:35
Hallo Wissende,

Ich habe eine kleine Denkblockade. Hoffentlich körnt ihr mich von der Leitung schubsen.

Eine Abteilung hat vier Gruppen (1-4) , in jeder Gruppe sind heute verschieden viele Mitarbeiter anwesend. Eine Query soll das Ergebnis und die Quote anzeigen, etwa so


Gruppe      VZK         Quote
1               12,34       19,6%
2               13,56       21,6%
3               16,78       26,7%
4               21,34       32,0%


Die Spalte VZK ist in einem vorigen Rechenschritte ermittelt worden. Bei der Spalte Quote hatte ich zunächst das Problem, dass ich die Summe der VZK brauche und (SELECT SUM(VZK) FROM DieseTabelle) geht wegen Zirkelbezug nicht.

1.) Dieses Summenproblem hab ich etwas unschön gelöst, indem ich die Quelltabellen dort nochmal herangezogen habe - geht das nich auch eleganter?

2.) Die obenstehenden Werte sind echte Rechenergebnisse mit ROUND. Weil immer alle auf die Quote schauen (steuert die Arbeitsverteilung) fällt sicher schnell einem Kollegen auf, dass die zusammen nur 99,9% ergibt. (,,Wieso soll ich deiner Anwendung vertrauen, wenn die so offensichtliche Fehler macht?)
Die Lösung ist naheliegend: Es werden nur Gruppe 1 bis 3 berechnet, und Gruppe 4 bekommt die Differenz zu 100. Wie schreibe ich das für Gruppe 4 in SQL? Ich kann ja nicht sagen ,,100 minus alle anderen Ergebnisse dieser Spalte"

Vielen Dank im Voraus

Hans-Jürgen
Titel: Re: Quotenbildung/Rundung
Beitrag von: hajott am August 05, 2019, 07:45:51
Selbstedit: Ich hab mich jetzt für die unschöne Variante entschieden, weil es scheinbar keine einfachere gibt.

Viele Grüße

Hans-Jürgen
Titel: Re: Quotenbildung/Rundung
Beitrag von: Josef P. am August 06, 2019, 09:06:02
Hallo!

ZitatDie obenstehenden Werte sind echte Rechenergebnisse mit ROUND.
Wenn du Round verwendest, darfst du dich nicht wundern, wenn die Summe nicht genau 100% liefert.

ZitatDie Lösung ist naheliegend: Es werden nur Gruppe 1 bis 3 berechnet, und Gruppe 4 bekommt die Differenz zu 100. Wie schreibe ich das für Gruppe 4 in SQL?
Du willst das Ergebnis von Gruppe 4 verfälschen? Was kann 4 dafür, dass bei 1-3 gerundet wird? ;-)

Wo gibst du das Ergebnis aus?
Wenn du einen Bericht oder ein Formular verwendest, könntest du die Berechnung der Quote auch in einem berechneten Textfeld machen. Dann entfällt die Summenbildung über die Abfrage.

mfg
Josef