yo,
erklär doch bitte mal genauer, wie genau du auf diesen schluß kommst.
die begründung liegt letzlich in der gruppierung. dort werden spalten mit gleichen inhalt zusammengefaßt (gruppiert). so können zum beispiel 5 datensätze alle den gleichen spalteninhalt in der gruppierung haben, und werden somit zusammengefasst, sprich aus 5 datensätzen wird einer als ergebnis zurück gegeben. wenn du nun noch andere als die gruppierungs-spalten mit ausgeben willst, dann können diese werte (in gegensatz zu den gruppiernugs-spalten) sich in den 5 datensätzen unterscheiden. da er aber nur datensatz zurück gibt, weiß das dbms nicht, welchen der unterscheidlichen werte es nun nehmen soll. deswegen gibt es eine regel, die andere dbms auch richtig umsetzen und fehlermeldungen schmeissen, dass du nur spaletn ausgeben kannst, über die due auch gruppierst hast oder die eben bestandteil einer aggregat-funktion wie zum beispiel SUM() sind.
so wie access beispielsweise... - heisst, ich sollte möglichst jeder abzufragenden spalte eine aggregatsfunktion zuweisen. wobei es doch egal sein sollte, wenn bei einer spalte ohnehin ein eindeutiger wert rauskommt?
das das datenbank-design schlecht ist weiss ich, das habe ich vor jahren ohne großes grundwissen entworfen gehabt und soll dummerweise heute noch herhalten.
fragt sich, was mehr mühe macht, es mal zu ändern oder beizubehalten. irgendwann muss man sich vom alten dingen trennen können. leider hat man nicht immer diese entscheidung in der hand.
so ist es. es ist derzeit nicht möglich.
die tabellendefinitionen habe ich mal untenstehend reinkopiert.
was die daten angeht, wäre das hier zu umfangreich.viel wichtiger als die "nackten" ddl befehle anzugeben wäre es, zu erklären, was du machen willst, welche tabellen davon betroffen sind und beispieldaten anzugeben. damit meine ich nicht alle daten, sondern eben nur ein paar beispiel, was vorhanden ist nud was dabei rauskommen soll.
ich hatte mal angefangen, nur einen datensat zusammenzuklamüsern. allein einer ist schon zu umfangreich für einen thread hier, und allein das manuelle zusammenstellen ist schon viel zu aufwendig.
am einfachsten wäre es, ich schicke dir zu tabellendefinitionen 2,3 beispieldatensätze. das wäre ja auch zum austesten das einfachste.
wobei ich sagen muss dass es mit einem test mit 'count(distinct spalte a, spalte b)' ganz gut aussieht, was das zählen der datensätze angeht.
natürlich könnte ich evtl. die geschwindigkeit der abfrage mit dem vorschlag, aggregatsfunktionen entsprechend einzusetzen evtl. erhöhen.
das müsste ich testen.
danke u. gruß