SQL Select / Datum

Hi
habe eine Frage zur richtigen Abfrage.

Gegeben:
eine Tabelle mit Spalte Messpunkt, Wert, DatumZeit
Aktuell sind in der Tabelle ca. 300.000 Zeilen mit Daten der letzen 2 Jahren.
Werte von ca 200 Messpunkten.

Gewünschtes Ergebnis:
Spalten = 5; Werte von 4 Messpunkten im Zeitraum DatumZeit x bis DatumZeit y
Werte von Messpunkt_1, Werte von Messpunkt_2, …3, …4, DatumZeit

Obwohl ich erst vor 3 Tagen die erste Select Anweisung gesehen haben bekomme ich das soweit hin.

Nun zu meinem Problem:
Die Messwerte werden nicht im gleichen Intervall in der Tabelle gespeichert. zB. Wert1 alle 60 Sek., Wert2 alle 300 sek, Wert3 alle 900 sek., Wert4 alle 300 sek.

DatumZeit Spalte der Ausgabe sollte den grössten Intervall haben. (im Beispiel eine Zeile pro 900 sek)

Die Werte mit kleinerem Intervall sollten in der Ausgabe den Durchschnitt innerhalb des grössten Intervalls bilden. (im Beispiel: Wert1 den Durchschnitt von 15 Werten pro Zeile)

hmm… hoffe ich habe mich nicht nur für mich verständlich ausgedrückt
und es gibt hier jemanden mit einer Idee.

Schöne Grüsse
Bianca

Hast Du nun 4 Messpunkte oder ca. 200?

Werte von Messpunkt_1, Werte von Messpunkt_2, …3, …4, DatumZeit

Falls Du ca. 200 Messpunkte hast, welche 4 bevorzugst Du?

Obwohl ich erst vor 3 Tagen die erste Select Anweisung gesehen haben bekomme ich das soweit hin.

Wie schaut das SQL zu Deiner Lösung aus?

Nun zu meinem Problem:
Die Messwerte werden nicht im gleichen Intervall in der Tabelle gespeichert. zB. Wert1 alle 60 Sek., Wert2 alle 300 sek, Wert3 alle 900 sek., Wert4 alle 300 sek.

DatumZeit Spalte der Ausgabe sollte den grössten Intervall haben. (im Beispiel eine Zeile pro 900 sek)

Die Werte mit kleinerem Intervall sollten in der Ausgabe den Durchschnitt innerhalb des grössten Intervalls bilden. (im Beispiel: Wert1 den Durchschnitt von 15 Werten pro Zeile)

hmm… hoffe ich habe mich nicht nur für mich verständlich ausgedrückt
und es gibt hier jemanden mit einer Idee.

Schöne Grüsse
Bianca

Könntest Du

a) meine Fragen beantworten
b) kannst Du mal, und zwar Copy&Paste-fähig, Deine Tabelle und Beispieldaten hier zeigen? Ich hätte ganz gern Details zu Deinem Tabellenaufbau und -inhalt, bin aber zu faul (sorry), dies zu erraten bzw. mir passende Testdaten etc. einfallen zu lassen. Also, so daß man es per Copy&Paste nutzen kann, ein CREATE TABLE und passende INSERT-Anweisungen. Und dazu passend, was bei rauskommen soll.

Andreas

Hi
danke für die Antwort

Messpunkte sind es ca 200 von denen ich mir 4 aussuche zB. 1,2,3 und 4.

Meine Bisherige unzureichende Lösung für 2 Messpunkte:
Messpunkt 1 hat einen Intervall von 300 sek, Messpunkt 2 60 sek. Bei meiner Lösung fallen die 4 Werte die Messpunkt 2 mehr hat einfach weg.

SELECT AVG(au1.Wert) AS D11, AVG(au2.Wert) AS D12, MAX(au1.DateTime) AS DD FROM Log au1
INNER JOIN ExtendedLog au2 ON au1.DateTime = au2.DateTime
WHERE (au1.M=1) AND (au2.M=2) AND (au1.DateTime >= ‘01.01.2008 00:00:00’) AND (au1.DateTime <= '09.09.2008 00:00:00 ')
GROUP BY DATEPART(yyyy, au1.DateTime), DATEPART(mm, au1.DateTime), DATEPART(d, au1.DateTime), DATEPART(hh, au1.DateTime), DATEPART(n, au1.DateTime)

Copy&Paste Tabelle würde ich liebend gerne hier reinstellen bin damit aber etwas überfordert.

Liebe Grüss
Bianca

Habe inzwischen eine Lösung gefunden.
Statt Inner Join nehme ich Left Join.

Bianca