Announcement

Collapse
No announcement yet.

Probleme mit Group und aggregatfunktionen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Group und aggregatfunktionen

    Hab leider kaum Ahnung von der ganzen Materie. deswegen steh ich völlig auf dem Schlauch.
    Es geht nur darum einen Bericht am Ende richtig sortiert zu haben.

    v = Month(Forms!mb_main!filt_von) & "/" & Day(Forms!mb_main!filt_von) & "/" & Year(Forms!mb_main!filt_von)
    b = Month(Forms!mb_main!filt_bis) & "/" & Day(Forms!mb_main!filt_bis) & "/" & Year(Forms!mb_main!filt_bis)
    s = "SELECT Sum(qry_Positionen2Auftrag.VKBrutto) AS SummevonVKBrutto, Sum(qry_Positionen2Auftrag.MatEK) AS SummevonMatEK, Avg(qry_Positionen2Auftrag.Aufschlag) AS MittelwertvonAufschlag, qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr, qry_Positionen2Auftrag.SummevonBruttoVK FROM qry_Positionen2Auftrag"
    s = s + " where (((qry_Positionen2Auftrag.Date) Between #" & v & "# And #" & b & "#))"
    s = s + " GROUP BY qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr, SummevonVKBrutto"

    Me.RecordSource = s
    Me.details.Caption = "Zeitraum: " & Forms!mb_main!filt_von & " bis " & (Forms!mb_main!filt_bis)

    liefert leider den Fehler: "Sie wollen eine Abfrage ausführen, die den angegebenen Ausdruck "SummevonVKBrutto" nicht als Teil der Aggregatfunktion einschließt."

    Versuche ich es andersherum, also so

    v = Month(Forms!mb_main!filt_von) & "/" & Day(Forms!mb_main!filt_von) & "/" & Year(Forms!mb_main!filt_von)
    b = Month(Forms!mb_main!filt_bis) & "/" & Day(Forms!mb_main!filt_bis) & "/" & Year(Forms!mb_main!filt_bis)
    s = "SELECT Sum(qry_Positionen2Auftrag.VKBrutto) AS SummevonVKBrutto, Sum(qry_Positionen2Auftrag.MatEK) AS SummevonMatEK, Avg(qry_Positionen2Auftrag.Aufschlag) AS MittelwertvonAufschlag, qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr, qry_Positionen2Auftrag.SummevonBruttoVK FROM qry_Positionen2Auftrag"
    s = s + " where (((qry_Positionen2Auftrag.Date) Between #" & v & "# And #" & b & "#))"
    s = s + " GROUP BY qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr, Sum(qry_Positionen2Auftrag.VKBrutto)"

    Me.RecordSource = s
    Me.details.Caption = "Zeitraum: " & Forms!mb_main!filt_von & " bis " & (Forms!mb_main!filt_bis)

    kommt der Fehler: "Aggregatfunktion in GROUP BY-Klausel (Sum(qry_Positionen2Auftrag.VKBrutto)) nicht möglich."

    Hat vielleicht irgendwer eine Idee dazu?

  • #2
    Bitte beachten: Formatierung von SQL in Beiträgen
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Lylantiel,

      da kann ich mich nur Falk anschließen, das kann man nun wirklich nicht lesen. Besser wäre es, statt dem chaotischen VBA Code das effektive SQL Statement zu posten; wie das zuvor zusammengewürfelt wird, interessiert hier nicht wirklich.

      Dann vermute ich mal, das die ganzen qry_... keine Tabellen sondern weitere Abfragen sind, wo man nicht beurteilen kann, was die nun wieder machen.
      Ins blaue geschossen würde ich sagen, Du´musst beim 1. Codeblock (der zweite ist mit Sum im GROUP völlig verkehrt) folgendes ändern: Von
      [highlight=VB]s = s + " GROUP BY qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr,
      SummevonVKBrutto"[/highlight]
      in
      [highlight=VB]s = s + " GROUP BY qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr,
      qry_Positionen2Auftrag.SummevonBruttoVK "[/highlight]
      ändern; sonst referenzierst Du auf das errechnete, gleichnamige Feld.
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #4
        Jupp hab den Fehler gefunden, danke....

        Dafür bekomme ich meine Daten nun dennoch nicht so gruppiert und sortiert, wie ich es gerne haben möchte.

        Code:
        SELECT Sum(qry_Positionen2Auftrag.VKBrutto) AS SummevonVKBrutto, 
        Sum(qry_Positionen2Auftrag.MatEK) AS SummevonMatEK, 
        Avg(qry_Positionen2Auftrag.Aufschlag) AS MittelwertvonAufschlag, 
        qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr 
        FROM qry_Positionen2Auftrag
        where (((qry_Positionen2Auftrag.Date) Between [DATUM] And [DATUM]))
        GROUP BY qry_Positionen2Auftrag.ArtMatch1, qry_Positionen2Auftrag.ArtNr
        So ist due zugrundeliegende Abfrage, die ich eigentlich gerne in dem Access-Bericht hinterher sortiert und gruppiert haben möchte.
        Leider bekomme ich immer nur eins hin.
        Ziel wäre eine ausgabe wie folgt:

        Art.Match1 (gruppiert, also alle Waren mit der selben Art.Match1 als eine Gruppe) und diese Gruppen dann aber sortiert nach der Summe ihres Umsatzes (als nach SummevonVKBrutto).

        Wenn ich nun erst gruppiere und dann sortiere, hab ich zwar schöne Gruppen, aber die sind eben nicht gruppiert; wenn ich erst sortiere, bildet jeder Artikel eine eigene Gruppe, die sind dann aber wenigstens nach ihrem Umsatz sortiert.

        Hoffe ich hab mein Problem jetzt halbwegs gründlich erklärt, so dass man es auch verstehen kann.

        Comment

        Working...
        X