1

我正在使用 ingres 数据库将报告从 powerbuilder 迁移到 MS Reporting Services。我有以下数据集:

Code| Code Description | Carer_Id| Child_id | Child_age
=======================================================
738  Workflow           1234       2345        10
738  Workflow           1234       2346        15
739  Estimate           1235       2367        10

powerbuider 报告使用内置函数来运行总计以输出数据,例如:

code | Code Description | carer | child | age 0 < 10 | age 10 > 15
738   Workflow             1        2        1          1
==================================================================
739   Estimate             1        1        1          0

基本上要求是显示照顾者的总数,代码的儿童(按代码分组),但也显示 10 岁以下儿童的总数,以及按代码分组的 10 岁及以上儿童的总数.

我的问题是如何在 T-sql 2005 或 SSRS 中获得相同的东西?我可以得到 carer_id 和 Child_id 的不同 COUNT,然后将它们分组以获得照顾者和孩子的总数,但我无法得到年龄?如果可能我不想使用光标,我应该使用 CTE 吗?请任何建议将不胜感激。提前致谢。

4

1 回答 1

1
SELECT  Code,
        [Code Description],
        COUNT(DISTINCT carer_ID) Carer,
        COUNT(DISTINCT Child_ID) child,
        SUM(CASE WHEN Child_Age BETWEEN 0 AND 10 THEN 1 ELSE 0 END) [age 0 < 10],
        SUM(CASE WHEN Child_Age BETWEEN 11 AND 15 THEN 1 ELSE 0 END) [age 10 > 15]
FROM    TableName
GROUP   BY Code, [Code Description]

输出

╔══════╦══════════════════╦═══════╦═══════╦════════════╦═════════════╗
║ CODE ║ CODE DESCRIPTION ║ CARER ║ CHILD ║ AGE 0 < 10 ║ AGE 10 > 15 ║
╠══════╬══════════════════╬═══════╬═══════╬════════════╬═════════════╣
║  738 ║ Workflow         ║     1 ║     2 ║          1 ║           1 ║
║  739 ║ Estimate         ║     1 ║     1 ║          1 ║           0 ║
╚══════╩══════════════════╩═══════╩═══════╩════════════╩═════════════╝
于 2013-03-31T05:08:20.790 回答