0

SQL データベース内のテーブルの 1 つからのデータをグループ化したいと考えています。グループ化に使用されるフィールドは数値であり、必要なグループは数式に従いません。

グループ 0 値不明 (NULL)

グループ 1 の値 0 ~ 499

グループ 2 値 500 - 999

グループ 3 値 1000 - 1999

グループ 4 の値 2000 ~ 4999

グループ 5 値 5000 +

TSQLでこれを達成するにはどうすればよいですか?

ところで、Crystal Report に表示するためにこれを行いたいので、SQL Select ステートメントではなく Crystal Reports でこれを行うためのより良い方法があればアドバイスしてください。

4

1 に答える 1

1

を使用しcaseて、カスタム グループを作成できます。サブクエリでを定義する場合case、定義を繰り返す必要はありません。

select  Grp
,       sum(col2)
,       avg(col3)
from    (
        select  case
                when col1 is null then 0
                when col1 between 0 and 499 then 1
                when col1 between 500 and 999 then 2
                ...
                end as Grp
        ,       *
        ) as SubQueryAlias
group by
        Grp
于 2012-09-18T08:58:33.950 に答える