ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
343
343
EMPFEHLEN
-
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
-
29.11.06 17:27 #2
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ß RadhadMein 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
-
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
-
Problem mit Statement - SQL-Server
Von ratze79 im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 04.05.09, 08:13 -
dbus Problem beim Kernel bauen
Von Joerg66 im Forum Linux & UnixAntworten: 6Letzter Beitrag: 11.03.09, 17:57 -
Problem beim Bauen eines Arrays
Von sipoh im Forum PHPAntworten: 2Letzter Beitrag: 30.01.08, 13:48 -
Problem beim Bauen im Browsergame
Von Duellking im Forum PHPAntworten: 1Letzter Beitrag: 03.02.07, 11:09 -
Server Programm weiter bauen
Von Viper2009 im Forum C/C++Antworten: 2Letzter Beitrag: 01.07.05, 11:51





Zitieren
Login





