Ich versuche, eine Abfrage zu schreiben, die nur die neuesten Ergebnisse zurückgibt. Die Tabelle, aus der ich Informationen entwerfe, hat keine eindeutigen Spalten und enthält Informationen über Tarifänderungen, so dass für jeden bestimmten Kunden mehrere Tarifänderungen möglich sind - ich möchte nur die letzte Tarifänderung für jeden Kunden.Wählen Sie die letzten Daten
Die Struktur ist:
mrmatter VARCHAR(14)
mrtk VARCHAR(14)
mreffdate DATETIME
mrtitle VARCHAR(100)
mrrate INT
mrdevper INT
Einige Beispieldaten sind:
mrmatter mrtk mreffdate mrtitle mrrate mrdevper
184-00111 0005 2001-03-19 00:00:00.000 ! 250 NULL
184-00111 0259 2001-03-19 00:00:00.000 ! 220 NULL
184-00111 9210 2001-03-19 00:00:00.000 ! 220 NULL
184-00111 0005 2007-07-01 00:00:00.000 ! NULL NULL
Aus den Daten über Sie dort sehen können, sind zwei mrtk (0005), aus diesen Ergebnissen sollte es nur drei Rück anstelle der vier Reihen.
Die Abfrage ist nicht nur auf MRTK, statt MRTK könnte es eine MRTITLE in diesem Fall würde ich das neueste Datum finden müssen, wenn es mehrere gibt.
Ich habe versucht, die folgende Abfrage, gibt die Ergebnisse in der neuesten zu ältesten sortiert, aber es gibt vier Zeilen (zwei 0005) statt nur die drei. Ich habe verschiedene Möglichkeiten ausprobiert, um die gleiche Abfrage auszuführen, aber es gibt alle die gleichen Ergebnisse zurück.
SELECT mrmatter,mrtk,mrrate,MAX(mreffdate) AS 'MostRecent'
FROM mexrate
WHERE mrmatter='184866-00111'
GROUP BY mrmatter,mrtk,mrrate
Jede Hilfe, die zur Verfügung gestellt werden kann, würde sehr geschätzt werden.
UPDATE: Die Spalte mrrate kann Nullen enthalten, und die Nullen können der letzte Eintrag sein. Was ich möchte, ist der neueste Eintrag für das gleiche mrmatter AND (mrtk OR mrtitle).
Einige weitere Beispieldaten ist:
mrmatter mrtk mrtk mrrate mreffdate
100626-01406 Senior Assoc ! 235.000 2006-01-25 00:00:00.000
100626-01406 Solicitor ! 235.000 2006-01-25 00:00:00.000
100626-01407 Associate ! 265.000 2006-01-30 00:00:00.000
100626-01407 Associate ! 276.000 2007-07-01 00:00:00.000
100626-01407 Partner ! 265.000 2006-01-30 00:00:00.000
100626-01407 Partner ! 276.000 2007-07-01 00:00:00.000
100626-01407 Senior Assoc ! 265.000 2006-01-30 00:00:00.000
100626-01407 Senior Assoc ! 276.000 2007-07-01 00:00:00.000
Matt
Könnten Sie bitte eine CREATE TABLE und INSERT-Anweisungen bereitstellen. Das wäre viel einfacher. Und Sie sollten Code-Blöcke verwenden, wenn Sie Dinge wie SQL posten, also wird es hervorgehoben. –