1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Funktion UNION über mehrere Tabellen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Mikelook, 15 Oktober 2018.

  1. Mikelook

    Mikelook Neuer Benutzer

    Hallo zusammen,

    habe eine Frage an die Profis!
    Problembeschreibung:

    1. mehrere Tabellen mit den Name Daten1, Daten2, Daten3, Daten4
    2. die Tabellen mit mehrerer nicht immer gleicher Anzahl von Feldern, aber die unten abgebildeten sind immer vorhanden:

    Vorname / Name / Strasse / Datum /

    3. es sollten die Tabellen verglichen und für die Ausgabe zusammengefasst werden - nach Datum
    4. als Ergebnis soll die Häufigkeit des Vorkommens eines Datum in allen Tabellen chronologisch ausgegeben werden, etwa in Form:

    Datum Anzahl
    10.10.2018 5
    11.10.2018 2
    12.10.2018 8
    13.10.2018 5

    So etwa habe ich es versucht, aber es kommen nicht die "richtigen" Werte - Häufigkeiten raus..

    SELECT
    Datum, COUNT(*)
    FROM ( SELECT Datum FROM Daten2
    UNION ALL
    SELECT Datum FROM Daten3
    UNION ALL
    SELECT Datum FROM Daten4
    UNION ALL
    SELECT Datum FROM Daten5
    )
    Daten1
    GROUP BY Datum

    Kann mir bitte jemand bei dem Problem helfen?

    THX

    Mike
     
  2. Mikelook

    Mikelook Neuer Benutzer

    Keiner mit einer Idee?

    Dann hilft vielleicht dieses, um zu verstehen, was ich meine :)

    Daten1:

    Vorname | Name | Strasse | Datum
    V1 | N1 |S1 |01.10.2018
    V2 |N2 |S2 |01.10.2018
    V3 | N3 |S3 |02.10.2018
    V1 | N1 |S1 |03.10.2018
    V1 | N1 |S1 |04.10.2018

    Daten2:

    Vorname | Name | Strasse | Datum
    V12 | N12 |S16 |01.10.2018
    V23 |N13 |S21 |02.10.2018
    V31 | N13 |S31 |02.10.2018
    V11 | N15 |S12 |03.10.2018
    V12 | N16 |S14 |04.10.2018

    Daten 3....Daten x mit ähnlichem Aufbau.

    Ausgabe:

    Datum | Anzahl des gleichen Datums
    01.10.2018 |3
    02.10.2018 | 4
    03.10.2018 | 8
    04.10.2018 | 7

    Es soll die Angabe von der Menge der Termine eines Datum ausgegeben werden.

    Danke im Voraus!

    Mike
     
  3. akretschmer

    akretschmer Datenbank-Guru

    dein im ersten Posting gezeigtes SQL funktioniert bei mir:

    Code:
    test=*# create table daten2(datum date);
    CREATE TABLE
    test=*# create table daten3(datum date);
    CREATE TABLE
    test=*# create table daten4(datum date);
    CREATE TABLE
    test=*# create table daten5(datum date);
    CREATE TABLE
    test=*# insert into daten2 select current_date;
    INSERT 0 1
    test=*# insert into daten3 select current_date+1;
    INSERT 0 1
    test=*# insert into daten3 select current_date+1;
    INSERT 0 1
    test=*# insert into daten4 select current_date+2;
    INSERT 0 1
    test=*# insert into daten4 select current_date+2;
    INSERT 0 1
    test=*# insert into daten4 select current_date+2;
    INSERT 0 1
    test=*# insert into daten5 select current_date+3;
    INSERT 0 1
    test=*# insert into daten5 select current_date+3;
    INSERT 0 1
    test=*# insert into daten5 select current_date+3;
    INSERT 0 1
    test=*# insert into daten5 select current_date+3;
    INSERT 0 1
    test=*# select datum, count(*) from (select datum from daten2 union all select datum from daten3 union all select datum from daten4 union all select datum from daten5) daten1 group by datum order by datum;
       datum    | count
    ------------+-------
     2018-10-17 |     1
     2018-10-18 |     2
     2018-10-19 |     3
     2018-10-20 |     4
    (4 rows)
    
    
    wenn das bei Dir nicht klappt, dann muß wohl die verwendete Datenbank kapott sein.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden