Announcement

Collapse
No announcement yet.

mehrere Summen über eine Spalte mit WHERE Bedingung

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

  • mehrere Summen über eine Spalte mit WHERE Bedingung

    Hallihallo,

    ich steh hier total auf dem Schlauch und bräuchte mal professionelle Hilfe.
    Folgendes Szenario:
    Ich habe eine Materialbewegungstabelle dort werden sämtliche Bewegungen abgelegt. Also Zugang Plan, Zugang Ist, Manueller Zugang. Die jeweilige Buchung wird mit den Informationen Artnr, lager, Menge, kennung in der tabelle abgelegt. Die Kennung steht für die Art der Buchung (Zugang, Abgang....)

    Nun muss ich einen SQL erstellen, der mir die Summe der Zu-PLAN, Zu-IST, Ab-PLAN, Ab-IST buchungen in jeweils eine extra Spalte ausgibt.

    Angefangen hab ich mal folgendermaßen:

    SELECT artnr, lager, SUM(menge) AS menge_zi
    FROM databew where datumi >'22.12.2009' and kennung = 101 OR datumi >'22.12.2009' and kennung = 501
    GROUP BY lager, artnr
    ORDER BY artnr

    Das funktioniert soweit auch, aber wie bekomme ich jetzt eine weitere Spalte dazu z.B. SUM(menge) AS menge_ai bei der die kennung = 201 or 401 ist

    Ich blicks echt nicht mehr. Wäre super wenn mir jemand helfen könnte.

    Liebe Grüße

    AndyEausT

  • #2
    Hallo und willkommen,

    da ich annehme, dass du diese Abfragen nicht durch komplizierte Gruppierungen verbinden kannst (das hast du wahrscheinlich schon ausprobiert), dürfte UNION das einfachste sein; das Ergebnis wird als Menge für eine zweite Abfrage benutzt:
    [highlight=sql]SELECT Summe1, Summe2
    FROM ( SELECT SUM(menge) AS Summe1
    FROM ... WHERE ... GROUP BY...
    UNION
    SELECT SUM(menge) AS Summe2
    FROM ... WHERE ... GROUP BY...
    )[/highlight]
    Gruß Jürgen

    Comment


    • #3
      Ich weiß nicht ob Union das richtige ist. mein Problem ist ja, dass die Werte alle in der gleichen Spalte stehen und nur über die Kennung getrennt werden können. Ich muss ja den Wert des 1. ergebnisses nicht weiterberechnen, sondern auf die gleichen Daten nochmals eine neue Abfrage laufen lassen. Klar könnte man auch mit temp.tabellen arbeiten, aber das dauert ja ewig bis ich die zusammengefriemelt hab.
      Oder verstehe ich jetzt den UNION falsch.

      Gruß

      Andy

      Comment

      Working...
      X