0

私はSQLが初めてで、これはユニプロジェクト用です。列を持つテーブルがあります Rego, FirstRego, LastRego, RegoDue

次のデータがあるとします。

  Rego      FirstRego                      LastRego                      RegoDue
YGF 615 2011-04-07 00:00:00.000 2011-04-07 00:00:00.000 2012-04-07 00:00:00.000
YGF 615 2011-04-07 00:00:00.000 2012-04-07 00:00:00.000 2013-04-07 00:00:00.000
ZIR 377 2012-10-05 00:00:00.000 2012-10-05 00:00:00.000 2013-10-05 00:00:00.000
ZIR 377 2012-10-05 00:00:00.000 2013-10-05 00:00:00.000 2014-10-05 00:00:00.000
ZJT 795 2012-10-31 00:00:00.000 2012-10-31 00:00:00.000 2013-10-31 00:00:00.000
ZSU 823 2012-04-30 00:00:00.000 2012-04-30 00:00:00.000 2013-04-30 00:00:00.000

Regoクエリ出力では、最高値を1回にしたい、RegoDueつまり出力は次のようになります。

Rego      FirstRego                      LastRego                      RegoDue
YGF 615 2011-04-07 00:00:00.000 2012-04-07 00:00:00.000 2013-04-07 00:00:00.000
ZIR 377 2012-10-05 00:00:00.000 2013-10-05 00:00:00.000 2014-10-05 00:00:00.000
ZJT 795 2012-10-31 00:00:00.000 2012-10-31 00:00:00.000 2013-10-31 00:00:00.000
ZSU 823 2012-04-30 00:00:00.000 2012-04-30 00:00:00.000 2013-04-30 00:00:00.000

これどうやってするの?

4

2 に答える 2

0

まず、最新のレゴの期日を見つけたいと思います。これを取得したら、それに参加して、望ましくない結果を除外できます。

select
    t.Rego, t.FirstRego, t.LastRego, lr.LatestRegoDue as RegoDue
from Table1 t
    join
    (
        select
           Rego, max(RegoDue) as LatestRegoDue
        from Table1
        group by Rego
    ) lr on t.Rego = lr.Rego and t.RegoDue = lr.LatestRegoDue
于 2013-10-21T01:35:45.120 に答える
0
Select * 
From Tbl T1
Where RegoDue =
(
    Select Max(RegoDue)
    From Tbl T2
    Where T2.Rego = T1.Rego
)
于 2013-10-20T12:19:56.030 に答える