SELECT Datensatz mit Datumsbereich
bearbeitet von Rolf bEntschuldige bitte, dass ich deine Anforderung ungenau gelesen und dann noch deine SQL Grundkenntnisse überschätzt habe.
Für den 01.11.2016 machst Du es so.
~~~sql
SELECT m.Maschine, m.Meldezeit, m.Wert1, m.Wert2, m.Wert3
FROM Meldungen m
JOIN (SELECT Maschine, CAST(MAX(Meldezeit) as DATE) as MaxDate
FROM Meldungen
WHERE CAST(Meldezeit AS DATE) <= '2011-11-01'
GROUP BY Maschine) r
ON m.Maschine = r.Maschine AND CAST(m.Meldezeit as DATE) = r.MaxDate
~~~
Du kannst Dir den CAST() in der Where-Bedingung sparen, wenn Du sie so formuliert:
`WHERE Meldezeit < '2016-11-02'`
aber um den Preis, dass Du einen Tag aufs Vergleichsdatum aufaddieren musst.
Es geht auch so:
`WHERE Meldezeit < DATEADD(DAY, 1, '2016-11-01'`
dann hast Du das gewünschte Datum klar in der Query stehen.
Was davon jetzt die "richtigste" Lösung ist, hängt auch davon ab, wie Du die Query nutzt. Ist sie in ein Programm eingebettet?
_Rolf_