UNION ALL und Summe bilden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UNION ALL und Summe bilden

    Moin!

    MySQL 5.1.33.

    Ich habe zwei Abfragen.

    Abfrage 1 liefert z.B.:
    WEEK; COUNT
    201145; 3
    201146; 5
    201147; 5

    Abfrage 2 liefert z.B.:
    WEEK; COUNT
    201144; 7
    201146; 5
    201148; 5

    Was ich brauche ist das hier:
    WEEK; COUNT
    201144; 7
    201145; 3
    201146; 10
    201147; 5
    201148; 5

    Sprich: Die Ergebisse der beiden Abfragen sollen mit UNION ALL zusammengelegt werden. Aber wenn es bei WEEK Einträge in beiden Tabllen gibt, dann brauche ich im Ergebnis nicht zwei Zeilen, sondern will nur eine eine Zeile mit der Summe von COUNT (síehe Woche 46 in 2011).

    Ich weiß nicht ob ich mit UNION ALL überhaupt in die richtige Richtung marschiert bin. Über einen Tipp würde ich mich freuen. :-)
    Zuletzt geändert von ; 14.05.2013, 14:59. Grund: spelling :-)

  • #2
    Eine Möglichkeit:
    Code:
    SELECT t.woche, 
    CASE WHEN COUNT(t.woche)>1 THEN SUM(t.wert) ELSE t.wert END AS summ 
    FROM 
    ( 
    SELECT woche, wert FROM tabelle1 
    UNION ALL 
    SELECT woche, wert FROM tabelle2 
    ) AS t  
    GROUP BY t.woche ORDER BY t.woche
    oder z.B. JOINen: (ungetestet)
    Code:
    SELECT 
    t1.woche, 
    t1.wert+COALESCE(t2.wert,0) AS summ 
    FROM tabelle1 t1 
    LEFT JOIN tabelle2 t2 ON t1.woche=t2.woche

    Kommentar


    • #3
      Ein Forum reicht nicht?

      *räusper* ->> erst hier und wenige Minuten später dort: UNION ALL und Summe bilden @ Relationale Datenbanksysteme - tutorials.de: Tutorial, Forum, Anleitung & Hilfe
      Keine nette Art... CROSS-POSTINGs werden i.A. nicht gerne gesehen!

      Kommentar

      Lädt...
      X