Auf unserem SQL-Server laufen 2 Datenbanken. 1 mit den Konfigurationen (Ich benenne diese in Zukunft mit "DB1"), die andere mit den Messdaten (DB2). Eine Tabelle in der DB1 enthält die Infos aller Messdatentabellen in der DB2, also:
<PRE>
DB1, Tabelle "files"
id titel station Blabla
*******************************************
1 Temperatur XY1 Blabla
2 Druck XY1 Blabla
3 Temperatur XY2 Blabla
. . . .
n Temperatur XY4 Blabla
</PRE>
In der DB2 sind nun die jeweilgen Messwerte abgelegt. Für jede ID wird nun eine eigene Tabelle erstellt. Der Titel der Tabelle ist = 'T'+id aus der oben aufgezeichneten Tabelle..
Wenn ich jetzt zB den Temperaturverlauf von Station XY2 ansehen möchte, sieht das so aus:
<PRE>
DB2, Tabelle "T3"
dt temp
********************************
01.01.04 00:00 30
01.01.04 00:05 35
01.01.04 00:10 38
01.01.04 00:15 37
. .
. .
</PRE>
Kann ich nun die Tabellen Kreuz&Quer verknüpfen, um Auswertungen mit <b>einer einzigen Abrage</b> zu erhalten?
z.B den Maximalwert pro File?
Also so à la:
<PRE>
USE DB1
SELECT f.titel, f.station,
(SELECT max(temp)
from 'SERVER.DB2.dbo.T'+str(f.id)) as Maximalwert
FROM files AS f
GO
</PRE>
Diese Funktion funktioniert (natürlich) nicht.. Gibts da eine Variante das so irgendwe hinzukriegen? Natürlich gänge es über eine For-Each Funktion in der Applikation, aber das ist Performacemässig nicht so dolle..
Cheers, Mike
Comment