Bericht mit 2 Tabellen

  • Hallo,
    ich hab da mal ne Frage betreffend nem Datenbank Problem.


    Ich habe zwei Tabellen (beide gleiche Felder).
    Sie enthalten je ein Feld mit Zeitstempel, Wert 1 und Wert 2.
    (als Hinweis: Es werden Daten ereignisgesteuert in die Tabellen geloggt)


    Nun soll ein Bericht entstehen der den Inhalt ungefähr folgendermassen ausgibt:
    - Sortiert nach Zeitstempel, inhalt beider Tabellen in einem Bericht.


    Zeit Wert1 Wert2
    ---------------------------
    xxx xxx xxx



    Vielen Dank!
    :aWAKEning:

  • wahrscheinlich nicht... d.h. wird bissl kompliziert... :))


    aber was ist es füre eine datenbank?
    hast du nicht noch ein bisschen mehr infos? ist relativ schwer so...

  • Zitat

    Original von hang
    wahrscheinlich nicht... d.h. wird bissl kompliziert... :))


    aber was ist es füre eine datenbank?
    hast du nicht noch ein bisschen mehr infos? ist relativ schwer so...


    gehts einfach darum wie du alle werte aus beiden tabellen bekommen kannst?


    |---> it MUST be a spoon! <---|


      

  • Hallo!
    Nein, die Zeitstempel sind nicht gleich..das war eben mein Problem..
    Ja, der Aufbau beider Tabellen ist gleich.


    Als erklärung: Das Ganze wird bei einem Kunde eingesetzt. Werte werden von einer SPS (Wert1: Gewicht(integer), Wert2: Fahrziel(integer)) über OPC- Server in SQL- Database geschrieben und soll schlussendlich mit einem Bericht in Access ausgegeben.


    Ich habe es mittlerweilen hingekriegt, dass mit Hilfe einer UNION- Funktion meine Wert (alle) in eine gemeinsame Tabelle geschrieben werden. Nun, aber zum nächsten Problem: irgendwie muss in meinem Bericht stehen woher der jeweilige Datensatz kommt (Kran 1 oder Kran 2).
    Wie mache ich das? ?(


    P.S: Danke für eure rasche Hilfe! :bow2

  • hmmm.... mit union???


    musst halt irgendwas wie


    select concat("wert 1: ", wert) [...]
    union
    select concat("wert 2: ", wert) [...]



    aber warum brauchst du eigentlich union???

  • Genau! Das ganze sieht sinngemäss irgendwie so aus:
    Select timestamp,Wert1,Wert2 from Tabelle 1
    union
    Select timestamp,Wert1,Wert2 from Tabelle 2


    Warum ich die Union brauche? Ich hab eben das Problem das ich zwei unterschiedliche Tabellen in einer Abfrage vereinen muss.. Habt Ihr da 'ne bessere Idee? Es ist auch so, dass ich an den 2 Tabellen nichts verändern kann..


    Nun besteht eben auch noch das Problem, dass ich in der Abfrage noch ein Feld brauche, dass mir sagt woher der Datensatz kommt (Tabelle 1 oder 2).
    Habt Ihr da ev. auch noch 'ne Lösung parat?


    Dir sid e huere hiuf :) Merci!

  • kenne das ganze mtiselect und so ned aber kannst du nicht einfach hinter den befehl select pro tabelle noch einen fixen wert reingenerieren ?( so im sinne von:


    Select timestamp,Wert1,Wert2 from Tabelle 1, "Wert von Kran 1"

  • versuchs mal mit so was da... eigentlich wollte ich ein group by benutzen, ist aber nicht nötig, da du keine funktionen brauchst...


    select to_char(a.zeit, "dd.mm.yy hh24:mi") zeit, a.wert, b.wert
    from tabelle1 a, tabelle2 b
    where to_char(a.zeit, "dd.mm.yy hh24:mi) = to_char(b.zeit, "dd.mm.yy hh24:mi) (+)
    union
    select to_char(b.zeit, "dd.mm.yy hh24:mi") zeit, a.wert, b.wert
    from tabelle1 a, tabelle2 b
    where to_char(b.zeit, "dd.mm.yy hh24:mi) = to_char(a.zeit, "dd.mm.yy hh24:mi) (+)
    order by zeit asc


    ist oracle SQL, weiss nicht ob das so mit deiner DB funzt...
    das union ist leider nötig, da das erste select sonst nicht alle daten ausgibt...
    wichtig zu beachten: das ist nur ein vorschlag, gut möglich, dass er fehler enthält!! verbesserungen sind bestimmt auch noch nötig :))


    EDIT: SORRY!!! so ist natürlich die sortierung falsch...
    müsste natürlich so heissen:


    select to_char(a.zeit, "dd.mm.yy hh24:mi"), a.wert, b.wert, a.zeit z
    blabla
    order by z asc



    und ausserdem könnte man sich alle to_char() sparen... sind relativ sinnllos... meine matschbirne hat glaub schon auf ferien geschaltet ;)