UNION ALL und Summe bilden

HeinerK

Erfahrenes Mitglied
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. :-)
 
UNION ALL über deine 2 Abfragen. Darüber wieder ien SELECT mit einme GROUP BY und einem MAX().

Wenn du uns die 2 ursprünglichen Abfragen zeigst, kann man das ganze ev. auch vereinfachen

SQL:
SELECT
    dat.week,
    MAX(dat.cnt) AS cnt
FROM
    (
        SELECT
            a.week,
            count(a.*) AS cnt
        FROM
            table_a AS a
        UNION ALL
        SELECT
            b.week,
            count(b.*) AS cnt
        FROM
            table_b AS b
    ) dat
GROUP BY
    dat.week
 
Zuletzt bearbeitet von einem Moderator:
Keine nette Art... CROSS-POSTINGs werden i.A. nicht gerne gesehen!

Ich habe nix dagegen wenn man in mehreren Foren dasselbe fragt. Schliesslich will man eine Lösung und sucht sich Hilfe. In unserer Netiquette habe ich auch nix dergleichen gesehen. Unschön ist lediglich dass man nicht in allen Foren postet dass das Problem gelöst ist (am besten noch mit der Lösung für andere Leute mit denselben Problemen).

Naja, in den Regeln von PHP ressource ists drin. von der Seite dort - ok, ist nicht mein Mod-Bereich.
 
Zurück