SQL - Dynamisch die Tabelle in From-Klausel bestimmen

Status
Nicht offen für weitere Antworten.

miketech

Bekanntes Mitglied
Hi zusammen,

ich möchte eine SQL Abfrage auf einer Tabelle ausführen, die aber selbst noch dynamisch bestimmt werden soll. Also folgendes:

select table_name from stock order by year limit 1

liefert mir den Tabellen-Namen. Diesen möchte ich nun in einer SQL-Abfrage verwenden, also sowas in der Art:

select * from (select table_name from stock order by year limit 1)

Das funktioniert aber leider nicht. Hat jemand eine Idee, wie ich sowas hinbekommen könnte? Ich möchte eine View erstellen und die View soll immer auf einer Tabelle basieren, die selbst dynamisch bestimmt werden soll.

Gruß

Mike
 

miketech

Bekanntes Mitglied
Hi,

naja, ich wollte ohne Java auskommen. Mir ging es um reines SQL. Die View soll sich quasi automatisch aktualisieren.

Gruß

Mike
 

P3AC3MAK3R

Top Contributor
Das war natürlich nicht zu vermuten und immerhin hast Du ja auch im JDBC-Forum gepostet. ;)

Auf welche Datenbank beziehst Du Dich?
 

miketech

Bekanntes Mitglied
Hab hier kein anderes DB-Forum gefunden und dachte, dass es hier doch sicher Leute gibt, die sich damit auskennen ;)

Ist eine MySQL Datenbank.

Gruß

Mike
 

abollm

Top Contributor
miketech hat gesagt.:
Hab hier kein anderes DB-Forum gefunden und dachte, dass es hier doch sicher Leute gibt, die sich damit auskennen ;)

Ist eine MySQL Datenbank.

Gruß

Mike

Na ja, die Frage vom Friedensmacher war aber schon berechtigt, denn abhängig vom RDBMS hast du da natürlich schon einige -- stark unterschiedliche Möglichkeiten.

In Oracle fällt mir spontan das Thema NDS dazu ein.
 

Yzebär

Bekanntes Mitglied
Wenn du so etwas brauchst, solltest du mal deine DB-Struktur mal überdenken. Beschreib doch einfach mal, was du vorhast, wir können dir sicher noch hilfreiche Tips geben.
 

abollm

Top Contributor
Yzebär hat gesagt.:
Wenn du so etwas brauchst, solltest du mal deine DB-Struktur mal überdenken. Beschreib d[..].

Ich glaube, dass man das so pauschal nicht sagen kann, denn ansonsten hätten sich die DB-Hersteller eben nicht bestimmte Möglichkeiten des dynamischen SQL ausgedacht.
 

bronks

Top Contributor
miketech hat gesagt.:
... select * from (select table_name from stock order by year limit 1) ...
Das klappt nur mit MySql V >= 4.irgenwas und dann mußt Du Aliase für die SubQuery verwenden:
Code:
select * from (select table_name from stock order by year limit 1) as x
 

miketech

Bekanntes Mitglied
Hi,

also dynamic SQL klingt schonmal interessant, weiß nur noch nicht, ob das mein Problem löst. Lese mich grad etwas ein.

Also folgendes: Ich habe eine Tabelle mit Daten. Diese Daten werden regelmäßig aufbereitet und in eine extra Tabelle gespeichert. Es existieren für verschiedene Zeiträume verschiedene Tabellen mit aufbereiteten Daten. Und ich möchte nun eine View erstellen, die auf der aktuellsten Tabellen mit den aufbereiteten Daten operiert.

Um überhaupt zu wissen, welche die aktuellste Tabelle ist, habe ich eine andere Tabelle, die jeweils den Zeitpunkt und den Tabellen-Namen beinhaltet.

D.h. hier müsste man nachschauen: Welches ist die aktuellste Tabelle? Und dann muss auf dieser operiert werden.

Und wo ich das so schreibe fällt mir eine Alternative ein: Ich könnte der aktuellsten Tabelle immer denselben Namen geben. Und später benenne ich diese Tabelle um. D.h. wenn ich Tabellen der Form habe: stock_2002, stock_2003 etc. mach ich eine stock_current und verwende diese in der View.

Ist zwar nicht genau das, was ich mir vorgestellt habe, aber wäre eine Lösung. Ich möchte die Logik, die später in der View ablaufen wird eben in der Datenbank haben und nicht in der Anwendung. Sonst wäre das alles überhaupt kein Problem. Die View verarbeitet Transaktionsdaten zusammen mit den archivierten aktuellen Daten. Und damit ich das nicht in zig Anwendungen immer wieder schreiben muss, soll dieser Teil in einer View auf Datenbank-Ebene ablaufen.

Gruß

Mike

Edit: Oder ich habe halt noch eine View "stock_current", die auf die aktuelle Tabelle verweist. Dann kann ich mit der View weiterarbeiten. Aber würde mich ja trotzdem interessieren, ob mein ursprüngliches Problem irgendwie zu lösen ist :)
 

Yzebär

Bekanntes Mitglied
Warum schreibst du nicht alle Daten in eine Tabelle und versiehst die zusammengehörigen Datensätze mit einer zusätzlichen ID bzw mehreren zusätzlichen Kennungen?

Auf dem MS SQl-Server kann man übrigens ein SQL-Statement als String zusammenbasteln und dann ausführen. Sowas würde ich aber nur für dynamische Update-Skripte (Änderung der Tabellenstrukturen etc) verwenden und nicht für select-Statements.
 

miketech

Bekanntes Mitglied
Hi,

das sind ziemlich viele Daten, die in einem gewissen Zeitraum aufkommen und später verarbeitet werden müssen. Aus Gründen der Übersichtlichkeit und auch Performance möchte ich die Daten trennen, weil sie einfach nicht so richtig zusammengehören. Es sind meist Daten von einem ganzen Jahr, die zusammenkommen. Ein Zusammenschmeißen würde dem Sinn (auf semantischer Ebene) nicht ganz gerecht werden, auch wenn es technisch möglich wäre.

Gruß

Mike
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JPA dynamisch auf NULL abfragen Datenbankprogrammierung 2
M MySQL Tabellen dynamisch erstellen Datenbankprogrammierung 12
Psypsy Dynamisch zur Laufzeit Datenbank erzeugen Datenbankprogrammierung 2
N Java-Objekt dynamisch aus Datenbanktabelle erzeugen? Datenbankprogrammierung 4
T MySQL Dynamisch Suchen Select Datenbankprogrammierung 4
P JPA Connection dynamisch hinzufügen Datenbankprogrammierung 2
S Aus ResultSetMetaData Klasse dynamisch erzeugen Datenbankprogrammierung 3
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
D Tabelle an Persistenzeinheit binden Datenbankprogrammierung 1
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
S gesamte Tabelle löschen Datenbankprogrammierung 2
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
Kirby.exe Eine Tabelle updaten Datenbankprogrammierung 16
L SQL Tabelle Datenbankprogrammierung 11
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
P Derby/JavaDB Datenbanktabelle erweitern, ohne Tabelle zu ändern Datenbankprogrammierung 6
B Datenmodell für Regeln + Bedingungen & Referenz auf andere Tabelle Datenbankprogrammierung 12
S FilterSearch Tabelle Datenbankprogrammierung 4
J Aufbau meiner Datenbank/Tabelle - Verbessern? So lassen? Datenbankprogrammierung 39
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
L Java- Zähle alle Werte aus der Tabelle von aktiver Zelle Datenbankprogrammierung 12
B Tabelle für "wiederkehrende Rechnungen" Datenbankprogrammierung 12
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
RowdyN SQLite Einfache Abfrage mit temporäre Tabelle, die nur innerhalb der Abfrage gültig ist Datenbankprogrammierung 0
N Dynamische Tabelle Datenbankprogrammierung 84
T Zeitraum aus SQL-Tabelle Datenbankprogrammierung 3
V SQLite 2 Tabelle vergleichen und alle unterschiede rausgeben Datenbankprogrammierung 1
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
M MySQL wie Listen oder arras in Tabelle(n) schreiben Datenbankprogrammierung 10
Paul15 Tabelle vergleichen Datenbankprogrammierung 15
J Tabelle synchronisieren mit Datenbank Datenbankprogrammierung 7
E Wie kann man bestimmte Zeilen der Tabelle rot markieren? Datenbankprogrammierung 1
L Tabelle mit Inhalt füllen Datenbankprogrammierung 2
J Optimierung von Querys/ ausgegebene Tabelle mit in neue Anfrage einbinden Datenbankprogrammierung 2
M Derby/JavaDB Kleine DB mit Tabelle erweitern - Integrität - Alter-Table - Netbeans ... Datenbankprogrammierung 5
C Tabelle erstellen mit Apache JDBC-Util Datenbankprogrammierung 1
A MySQL Tabelle ID abfragen und Spalte ausgeben Datenbankprogrammierung 4
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
E Nur der letzte Datensatz wird in Tabelle geschrieben Datenbankprogrammierung 4
B Nur 99% der Datensätze werden in Tabelle geschrieben Datenbankprogrammierung 2
Joew0815 Datenmerge große Tabelle Datenbankprogrammierung 16
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
P Neue Tabelle dazugekommen Datenbankprogrammierung 1
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
J Normalisierung - Aufspaltung der Tabelle Datenbankprogrammierung 4
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
S Wie muss meine SQL Tabelle aufgebaut sein, um unendliche Attribute zu vermeiden Datenbankprogrammierung 2
R HSQLDB Tabelle in JTable übertragen Datenbankprogrammierung 3
S MySQL Einfügen in Tabelle nur von Programm zulassen Datenbankprogrammierung 7
S Oracle Database 11g , eclipse , Tabelle erstellen Datenbankprogrammierung 2
L MySQL Uhrzeit-Format innerhalb einer Tabelle Datenbankprogrammierung 8
E Abfrage nach existierender SQL-Tabelle Datenbankprogrammierung 7
M Designfrage zu Rows die sich auf einen Datensatz derselben Tabelle beziehen Datenbankprogrammierung 7
N Temporäre tabelle MySQL Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
D DB Tabelle in JTable anzeigen - Probleme Datenbankprogrammierung 8
Rudolf MySQL MySQL Tabelle mit Fremdschlüsseln in JTable darstellen Datenbankprogrammierung 5
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
L SQLite Daten werden nicht in die Tabelle eingefügt Datenbankprogrammierung 7
D JPA (Hibernate) : Tabelle zweimal joinen Datenbankprogrammierung 4
G Oracle Hibernate M:N-Beziehung mit nur einer vorhandenen Tabelle Datenbankprogrammierung 5
N [XLS]Strings in Excel-Tabelle schreiben (poi) Datenbankprogrammierung 2
M DB View in Tabelle konvertieren in DB2? Datenbankprogrammierung 2
N Einzelne Spalte in MySQL-DB-Tabelle schreiben Datenbankprogrammierung 7
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
H MySQL Tabelle "Table" programmieren Datenbankprogrammierung 2
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
I Tabelle mit "|" getrennten Werten -> einzelnen Wert davon abfragen Datenbankprogrammierung 15
L Derby/JavaDB Fehler beim Erstellen einer Tabelle Datenbankprogrammierung 2
A Wie Tabelle auf bestimmten Inhalt überprüfen? Datenbankprogrammierung 7
G SQLite Abfrage, ob in Tabelle X Spalte Y existiert Datenbankprogrammierung 4
Y Tabelle (elegant) importieren Datenbankprogrammierung 4
turmaline [Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen Datenbankprogrammierung 11
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
F Baumstruktur erstellen und Art Tabelle festhalten!? Datenbankprogrammierung 13
S JPA: Objekt in Tabelle mit Composite Keys mappen (Embeddable Annotation) Datenbankprogrammierung 2
A Tabelle aktuell halten Datenbankprogrammierung 5
trash SQL, ganze Tabelle abfragen Datenbankprogrammierung 3
F HSQLDB HSQLDB lässt mich nicht auf erstellte Tabelle zugreifen Datenbankprogrammierung 12
Airwolf89 Spaltennamen einer Tabelle zurückgeben lassen Datenbankprogrammierung 9
J Ausgewählte Datensätze in DB-Tabelle schreiben Datenbankprogrammierung 13
J zufällige Auswahl aus einer Tabelle Datenbankprogrammierung 4
O eine Tabelle hat mehrere PrimKey mit dem selben Wert Datenbankprogrammierung 9
M Ausgabe in Tabelle der MySQL-Datenbank mit Java Datenbankprogrammierung 4
J Tabelle auslesen- knifflig Datenbankprogrammierung 7
Z [ORACLE] Ausgabe Tabelle im GUI Datenbankprogrammierung 4
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
R Tabelle Updaten aber auch Speichern Datenbankprogrammierung 2
D MySql Tabelle mit MySQLAdministrator (Anfänger) Datenbankprogrammierung 5
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
C Prüfen, ob eine MySQL-Tabelle bereits existiert Datenbankprogrammierung 7

Ähnliche Java Themen


Oben