tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
343
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Markus_K Markus_K ist offline Grünschnabel
    Registriert seit
    Nov 2006
    Beiträge
    2
    Hallo Forumsgemeinschaft,
    es wäre schön, wenn mir jemand bei dem Zusammenbau eines SQL-Statements helfen könnte.
    Zum Verständnis: Es gibt Berichte. Ein Bericht kann mehrere Themen haben. Ein Thema kann mehrere Einträge haben. Und ein Eintrag hat eine Relevanz.

    Ich habe eine Tabelle eintraege, die die folgenden (, relevanten) Spalten hat:
    oid (int), berichtID(int), datum (date), relevanz (tinyint) und thema (varchar).

    Jetzt will ich in der Tabelle berichte eine Spalte relevanz füllen. Und zwar ist die Relevanz eines Berichts die höchste Relevanz der letzten für jedes Thema eingegebenen Einträge.
    Um den neuesten Eintrag zu bestimmen braucht man Datum und oid. (Mehrere Einträge für ein Thema und Bericht am selben Tag -> nimm höchste oid.)

    Bin in SQL nicht gut und habe mich einige Stunden mit geschachtelten selects, maxs und group bys rumgeschlagen und befürchte mittlerweile, dass ich es ohne fremde Hilfe einfach nicht innerhalb der nächsten Tage hinbekomme.

    Ich wollte es mit java machen, aber das würde SEHR lange dauern. Es sind ca 70000 Berichte und ca 350 Themen. Aber es sah ungefähr so aus (PSEUDOPseudocode):

    berichte = db.getBerichte;
    themen = db.getThemen;
    berichtRelevanz[berichte.length];

    for(alle Berichte){
    themenrelevanz[];
    for(alle themen){
    lastEintrag = db.getLastEintragFürBerichtUndThemaOrderBy(datum, oid);
    themenrelevanz[thema] = lastEintrag.getRelevanz();
    }
    berichtRelevanz[bericht] = max(themenRelevanz[]);
    }

    Das ewige hin und her über jdbc dauert einfach viel zu lange. Ich hoffe sehr, dass mir hier jemand helfen kann.
    Danke schon mal für´s Lesen und mfG,
    Markus
    P.s. Schönen Feierabend
     

  2. #2
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Kannst du die Tabellen mal schöner aufbauen? Dann ist das was leichter! Zum Beispiel so:

    Tabelle1:
    tbl.ID | FK.ID | Name | Vorname

    Wobei der Fett gedruckte der Primärschlüssel ist Am besten alle Tabellen, die damit was zu tun haben, und dann einmal die Spalten (mit Tabellennamen davor) die du als Ergebnis brauchst. So wird es wesentlich leichter sein dir zu helfen bzw. dir Tipps zu geben!


    Gruß Radhad
     
    Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x

  3. #3
    Markus_K Markus_K ist offline Grünschnabel
    Registriert seit
    Nov 2006
    Beiträge
    2
    Guten Morgen Radhad,

    aber das mach´ich doch gerne :

    eintraege:
    oid (int) | berichtID (int) | thema (VARCHAR) | datum (date) | relevanz(tinyint) ...
    (berichtID und thema sind "Fremdschlüssel" aus berichte und themen.)
    (Ich benutze aber kein wirkliches Konzept für die Fremdschlüssel.)

    berichte:
    oid (int) | relevanz (tinyint) ...

    themen:
    identifier (VARCHAR) | ...

    Vorab schon einmal danke für´s Interesse. Es greift nur ein Java-Server auf die DB zu. Der muss sich momentan für ein paar (30 - 40) Berichte alle Einträge holen, nach Themen ordnen, nach Alter ordnen und dann die größte Relevanz vom letzten Eintrag von jedem Thema anzeigen. Das dauert mir zu lange. Daher will ich den Wert direkt aus´m Bericht ziehen können.

    Wollte mir per JDBC ein ResultSet zurückgeben lassen, das jeweils berichte.oid und den Wert für die neue Spalte berichte.relevanz hat. und sie dann zurückschreiben. Von mir aus muss man den Umweg über JDBC auch nicht machen, aber wie gesagt: über einfache select, update und delete-Statements bin ich noch nicht hinausgekommen... Also würde definitiv zu lange dauern...
     

Ähnliche Themen

  1. Problem mit Statement - SQL-Server
    Von ratze79 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 04.05.09, 08:13
  2. dbus Problem beim Kernel bauen
    Von Joerg66 im Forum Linux & Unix
    Antworten: 6
    Letzter Beitrag: 11.03.09, 17:57
  3. Problem beim Bauen eines Arrays
    Von sipoh im Forum PHP
    Antworten: 2
    Letzter Beitrag: 30.01.08, 13:48
  4. Problem beim Bauen im Browsergame
    Von Duellking im Forum PHP
    Antworten: 1
    Letzter Beitrag: 03.02.07, 11:09
  5. Server Programm weiter bauen
    Von Viper2009 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 01.07.05, 11:51