1

パーツの最新(最新)のレコードを取得する必要があります。私の唯一の方法は、「最大日付」アプローチを使用して取得することです。

基本的なスキーマ(およびサンプルデータ)は次のとおりです。

ldDate                  ldTime  ldPart          id
2010-10-26 00:00:00.000 52867   90-R6600-4100   186
2010-11-01 00:00:00.000 24634   90-R6600-4100   187
2010-11-24 00:00:00.000 58785   90-R6600-4100   194
2010-11-24 00:00:00.000 58771   90-R6600-4100   195
2010-11-17 00:00:00.000 29588   90-R6600-4100   201
2010-11-08 00:00:00.000 29196   90-R6600-4100   282
2010-11-08 00:00:00.000 29640   90-R6600-4100   290
2010-10-19 00:00:00.000 58695   90-R6600-4100   350
2010-09-22 00:00:00.000 32742   BH4354-F0       338
2010-09-22 00:00:00.000 32504   BH4354-F0       340
2010-11-17 00:00:00.000 31157   BH4354-F0       206
2010-11-08 00:00:00.000 27601   BH4354-F0       218
2010-11-08 00:00:00.000 27865   BH4354-F0       21
2010-09-22 00:00:00.000 23264   BR6950-F0       70
2010-09-22 00:00:00.000 23270   BR6950-F0       77
2010-09-24 00:00:00.000 27781   BR6950-F0       97
2010-11-24 00:00:00.000 57735   BR6950-F0       196

上記にあるのは、時間のないldDateであり、ldTimeですが、適切なHH:MM:SS表現ではありません。これは、真夜中からの秒数であるため、最初の行は次のようになります。

2010-10-26 00:00:00.000 52867 または時間を変換する場合:

52867秒=14.6852778時間〜2010-10-26 14:68:52

SQLクエリで両方の列を組み合わせることができるクリーンな方法はありますか?単純なmax(ldCombinedDate)を実行し、ldPart(パーツ番号)でグループ化します。

idはほとんど役に立たないので、無視してください。レコードが挿入された順序は今のところありますが、ネストされたクエリに使用できるものは他にありません。注:エントリの順序は、最新の日付を意味するものではありません。

ありがとう...

4

1 に答える 1

4

表現

DATEADD(second, ldTime, ldDate)

結合された日付を返します。だから、私はあなたがこのようなものが欲しいと思います:

SELECT ldPart, MAX(DATEADD(second, ldTime, ldDate)) AS MaxCombinedDate
  FROM yourtable
 GROUP BY ldPart
于 2010-12-01T18:28:13.330 に答える