首页 > 解决方案 > 用于计算记录数的 SQL 查询

问题描述

嗨,我在报告状态数据示例中显示记录如下

NAME     STATE
BOB      NSW
PETER    ACT
SAM      NSW
BOY      VIC

而且我需要按状态计算每条记录以显示在 SSRS 报告中。我正在尝试使用行号和分区依据。但它显示的是 1、2、3、4。这就是应该的。任何其他建议和预期结果应适用于 NSW =2 VIC=1 和 ACT =1

标签: sqlreporting-services

解决方案


你可以这样做

CREATE TABLE T
    ([NAME] varchar(5), [STATE] varchar(3))
;

INSERT INTO T
    ([NAME], [STATE])
VALUES
    ('BOB', 'NSW'),
    ('PETER', 'ACT'),
    ('SAM', 'NSW'),
    ('BOY', 'VIC')
;

SELECT *, (SELECT COUNT(State) FROM T WHERE State = T1.State) StateCount
FROM T T1;

回报:

+-------+-------+------------+
| NAME  | STATE | StateCount |
+-------+-------+------------+
| BOB   | NSW   |          2 |
| PETER | ACT   |          1 |
| SAM   | NSW   |          2 |
| BOY   | VIC   |          1 |
+-------+-------+------------+

推荐阅读