質問

私は次のようなデータ構造のようなものがあります:

Category    StartDateTime       EndDateTime
===============================================
1           12/1/2009 12:00     12/1/2009 12:12
1           12/1/2009 04:00     12/1/2009 04:20
2           12/2/2009 10:15     12/2/2009 10:22
2           12/2/2009 11:00     12/2/2009 11:01

私は、各カテゴリー分間StartDateTimeと最大EndDateTimeをしたいです。このように:

Category    MinStartDateTime    MaxEndDateTime
===============================================
1           12/1/2009 12:00     12/1/2009 04:20
2           12/2/2009 10:15     12/2/2009 11:01

カテゴリでグループを最小&最大を使用すると、動作していないよう:

select
    Category,
    min(StartDateTime) [MinStartDateTime],
    max(EndDateTime) [MaxDateTime]
from
    MyTable
group by
    Category
order by
    Category,
    StartDateTime,
    EndDateTime

私も試した内側の2つは、各分間のサブクエリとmax声明に参加し、しかし、それは一部のレコードを除外しているようだ。

select distinct
    T1.Category,
    T1.StartDateTime [MinStartDateTime],
    T1.EndDateTime [MaxEndDateTime]

from
    MyTable T1

inner join
    (select
        Category,
        min(StartDateTime) [MinStartDateTime]
     from
        MyTable
     group by
        Category) T2
on T2.Category = T1.Category and T2.MinStartDateTime = T1.StartDateTime

inner join
    (select
        Category,
        max(EndDateTime) [MaxEndDateTime]
     from
        MyTable
     group by
        Category) T3
on T3.Category = T1.Category and T3.MaxEndDateTime = T1.EndDateTime

order by
    T1.Category,
    T1.encodeStartDateTime,
    T1.encodeEndDateTime

任意のアイデア?データベースは、SQL-92に準拠している必要がありSybase ASEのです。

役に立ちましたか?

解決

あなたの最初のソリューションは、ORDER BY句を除き、正しく見えます。試してみてください。

select
    Category,
    min(StartDateTime) [MinStartDateTime],
    max(EndDateTime) [MaxDateTime]
from MyTable
group by
    Category
order by
    Category,
    MinStartDateTime,
    MaxDateTime
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top