MS SQLクエリの作成に慣れていて、RecordVersionという名前の最も高いフィールドを持つレコードのみを表示しようとしています。 、クエリのMAX結果のみを表示する方法
PriceProgramID EffectiveDateTime Price PLU Descr LastUpdate LastUpdatedBy RecordVersion PriceScheduleUniqueID
1 2016-03-22 00:00:00.000 35.00 SLS10100103 Architecture Adult from NP POS 2015-01-22 07:53:15.000 GX70,83 9 569
1 2016-03-22 00:00:00.000 32.00 SLS10100103 Architecture Adult from NP POS 2014-02-25 16:22:46.000 GX70,83 5 86180
結果の最初の行はRecordVersionがされている9と5である二行目の結果:
SELECT
PriceCalendars.PriceProgramID,
PriceCalendars.EffectiveDateTime,
PriceSchedules.Price,
PriceSchedules.PLU,
items.Descr,
PriceSchedules.LastUpdate,
PriceSchedules.LastUpdatedBy,
PriceSchedules.RecordVersion,
PriceSchedules.PriceScheduleUniqueID
FROM
PriceCalendars
INNER JOIN PriceSchedules ON PriceCalendars.PriceProgramID = PriceSchedules.PriceProgramID
INNER JOIN items ON PriceSchedules.PLU = items.PLU
WHERE
(PriceSchedules.PLU = 'SLS10100103')
AND (PriceCalendars.EffectiveDateTime = '2016-03-22')
ここにあるクエリ結果: 以下は表示されますが、すべてのレコードを作品クエリです私は、RecordVersion = 9を返すより高いレコードを表示したいだけです。
私はMAXコマンドを使用しようとするたびに、エラーまたはグループを取得し、すべての例を試してみましたが、動作するようです。 MS SQL 2012 感謝を使用して
は、 ケン
は複写のようです食べた。私はこの事件の多くを見てきました。 http://stackoverflow.com/questions/28984670/how-to-get-latest-record-or-record-with-max-corresponding-date-of-all-distinct-v – FLICKER
この2つを同じにするとあなたはそのうちの1つをしたいですか? PriceProgramID、PLU Descr、PriceScheduleUniqueID(またはそれらのすべての組み合わせ)? – Ralph
'SELECT TOP 1'と' ORDER BY RecordVersion DESC'を使ってみましたか?これはあなたのユースケースには十分かもしれませんが、わかりません。 –