最新の結果のみを返すクエリを作成しようとしています。私が情報を引き出しているテーブルには一意の列はなく、レート変更に関する情報も含まれているので、特定のクライアントにはいくつかのレート変更がある可能性があります。最新の日付を選択
構造は次のとおりです。
mrmatter VARCHAR(14)
mrtk VARCHAR(14)
mreffdate DATETIME
mrtitle VARCHAR(100)
mrrate INT
mrdevper INT
いくつかのサンプルデータがある:あなた以上のデータから、
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
は2 mrtk(0005)がある見ることができ、これらの結果から、それはわずか3を返す必要があります4行の代わりに
mrtkの代わりにmrtkだけのクエリはありません。mrtitleがある場合は、倍数があるときに最新の日付を見つける必要があります。
私は次のクエリを試しました。最も古いものから順にソートされた結果を返しますが、3つではなく4つの行(2つの0005)を返します。私は同じクエリを行うさまざまな方法を試しましたが、すべて同じ結果を返します。
SELECT mrmatter,mrtk,mrrate,MAX(mreffdate) AS 'MostRecent'
FROM mexrate
WHERE mrmatter='184866-00111'
GROUP BY mrmatter,mrtk,mrrate
提供可能なすべての支援をいただければ幸いです。
更新: mrrate列にはNULLを含めることができ、NULLには最新のエントリを使用できます。私が後にしているのは、同じmrmatter AND(mrtk OR mrtitle)の最新エントリです。
いくつかのより多くのサンプルデータは、次のとおりです。
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
マット
CREATE TABLEとINSERTステートメントを提供してください。それははるかに簡単です。そして、SQLのようなものを掲示するときにはコードブロックを使うべきですので、強調表示されます。 –