私は今抽出する必要があるデータベースに画像を持っています。イメージ列のタイプはvarbinary(max)
です。T-SQLはMax(Date)から画像を抽出します
JOINまたはサブクエリーを使用していくつかの例を試してみましたが、開発されたクエリは、画像用ではない場合には機能します。 DISTINCT
とMAX(date)
を使用しても、古い画像は消去されません。多くのIDには複数の画像があります。 Max(Date)
を使用すると最新の日付が抽出されますが、画像を追加するとすべてのフィルタリングが削除されます。
クエリは次のようになります。
SELECT DISTINCT ID, Image, DateModified, GETDate()
FROM images
WHERE
TYPE = 'B'
ID Image DateMod Type
1 0x789 01-02-2014 B
1 0x791 11-12-2015 B <-- this is a tgt record
2 0x675 12-01-2015 A
5 0x324 06-26-2015 B <-- this is a tgt record
私はMAX(DateModified)
を使用している場合、それはGROUP BY
を強制し、それはまだ古い画像がなくなるわけではありません。各IDに最新のタイプ 'B'イメージが必要です。私はあなたがこのような何かをしたいかなり確信して image, ID, DateModified, TodaysDate (GetDate)
。それは一定の時間かトップnレコードですか? – H20rider
@ H20rider "各IDの最新のタイプ 'B'イメージ"(IDによる)グループごとの日付順の「TOP 1」、タイプ= Bの場合 –
@Daveは私の答えを参照してください。 'DISTINCT'節が適切に使用されたときにそれをエミュレートすることはできますが、あなたは' GROUP BY'を使用していません。 –