Sorry
Also ich zeichne Messwerte in einem bestimmten Takt auf.
Für jeden Wesswert gibt es eine Tabelle die wie folgt aussieht:
CREATE TABLE "Messwert1" (TimeStamp, ID, Name,SignalInterval , Type, Value);
TimeStamp | Name | Interval | Type | Value
26.10.2012 12:55:45 | Var1 | 1000 | INT | 15
26.10.2012 12:55:46 | Var1 | 1000 | INT | 16
26.10.2012 12:55:47 | Var1 | 1000 | INT | 17
26.10.2012 12:55:48 | Var1 | 1000 | INT | 14
usw.
In dem Beispiel oben zeiche ich jede Sekunde Werte auf, die in die DB geschrieben werten. (Es können in einer Tabelle auch unterschiedliche Intervalle vorkommen)
Soweit alles ok.
Ich möchte jetzt Werte aus der DB auslesen aber nicht alle, sondern nur die Werte z.b. jeder zweiten Sekunde.
Ich hoffe bis jetzt ist es noch verständlich.
Wenn nun die folgende Abfrage durchführe:
Code: Alles auswählen
SELECT * FROM "Messert1"
where (TimeStamp BETWEEN '26.10.2012 12:55' AND '26.10.2012 12:59')
AND
(rowid - (SELECT rowid FROM "Messert1" WHERE TimeStamp > '26.10.2012 12:55' ORDER BY TimeStamp LIMIT 1)) % 2 = 0;
bekomme ich fast die das Ergebnis das ich möchte.
Allerdings habe ich das Problem wenn ich in der Tabelle noch einmal den Wert mit einem anderen Takt drin habe z.B.
TimeStamp | Name | Interval | Type | Value
26.10.2012 12:55:45 | Var1 | 1000 | INT | 15
26.10.2012 12:55:46 | Var1 | 1000 | INT | 16
26.10.2012 12:55:46 | Var1 | 500 | INT | 16
26.10.2012 12:55:47 | Var1 | 1000 | INT | 16
26.10.2012 12:55:47 | Var1 | 500 | INT | 17
26.10.2012 12:55:48 | Var1 | 1000 | INT | 14
und ich nun die Abfage noch auf den Intervall begrenze
Code: Alles auswählen
SELECT * FROM "Messert1"
where (TimeStamp BETWEEN '26.10.2012 12:55' AND '26.10.2012 12:59')
AND Interval = 1000 AND
(rowid - (SELECT rowid FROM "Messert1" WHERE TimeStamp > '26.10.2012 12:55' ORDER BY TimeStamp LIMIT 1)) % 2 = 0;
dann ist mein Ergebnis nicht ganz korrekt, die rowid ist eine fortlaufende die SQLite selbst anlegt, jetzt ist es ja so das die Tabelle mit einer angezeigten rowid so aussieht
rowid |TimeStamp | Name | Interval | Type | Value
1 |26.10.2012 12:55:45 | Var1 | 1000 | INT | 15
2 |26.10.2012 12:55:46 | Var1 | 1000 | INT | 16
3 |26.10.2012 12:55:46 | Var1 | 500 | INT | 16
4 |26.10.2012 12:55:47 | Var1 | 1000 | INT | 16
5 |26.10.2012 12:55:47 | Var1 | 500 | INT | 17
6 |26.10.2012 12:55:48 | Var1 | 1000 | INT | 14
dadruch das die einige rowids wegfallen kann ich den Modulo nicht mehr so durchführen.
Habe ich eine möglichkeit eine fortlaufende Aufzählung zu erzeugen anstatt die rowid zu verwenden.
Gruß
ScooB