特定范围内的组数值数据

时间:2012-09-18 08:56:06

标签: sql crystal-reports

我想将数据从SQL数据库中的一个表中分组。用于分组的字段是数字的,我想要的组不遵循任何数学公式,例如。

组0值未知(NULL)

第1组值0 - 499

第2组值500 - 999

第3组价值1000 - 1999

第4组值2000 - 4999

第5组值5000 +

如何使用TSQL实现这一目标?

顺便说一下,我想这样做才能在Crystal Report中显示,所以如果有更好的方法在Crystal Reports中执行此操作而不是通过SQL Select语句,那么请提供建议。

1 个答案:

答案 0 :(得分: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