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
Selbstedit: Ich hab mich jetzt für die unschöne Variante entschieden, weil es scheinbar keine einfachere gibt.
Viele Grüße
Hans-Jürgen
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