Ich habe die folgende Viele-zu-viele-Beziehung (Siehe Bild unten) in meinem SQL-Server.
In den meisten Fällen gibt es zwei Zeilen in der Tabelle tblWavelengths, die sich auf die Tabelle tblSensors beziehen (in manchen Fällen nur 1 und im Extremfall 20 Zeilen)
Ich habe die folgende einfache Abfrage ausgeführt, um die Daten aus diesen drei Tabellen abzurufen:
%Vor%Nach dem Ausführen dieser Abfrage habe ich folgende Ergebnisse erhalten:
Hier kommt mein Problem. Ich möchte eine Abfrage schreiben, die nur diejenigen Sensoren (SensorName) filtert, die zu einem bestimmten Zeitpunkt (DateTimeID) zwei Zeilen (zwei verschiedene Wellenlängen) in der Tabelle tblWavelengths haben. Also zum Beispiel möchte ich die Ergebnisse ohne haben der 77902/001 Sensor - weil er zu einem gegebenen Zeitpunkt nur eine Zeile (eine Wellenlänge) zu den tblSensors hat
Sie können eine Fensterfunktion verwenden, um die Anzahl der Wellenlängen für jede Sensorname / Datetimed-Kombination herauszufinden:
%Vor%ANHANG
Als Nachdenken stellte ich fest, dass Sie vielleicht zwei Ergebnisse für einen Sensor gleichzeitig mit der gleichen Wellenlänge haben, die 2 Datensätze zurückgeben, aber nicht zwei verschiedene Wellenlängen haben. Da Fensterfunktionen die Verwendung von DISTINCT
nicht unterstützen, ist eine Alternative unter
Tags und Links sql sql-server many-to-many