【发布时间】:2014-09-02 10:57:52
【问题描述】:
DECLARE @temp TABLE
(SEQ_NBR INT, TERR_CD NVARCHAR(20), DSTR_CD NVARCHAR(20), RGN_CD NVARCHAR(20), AREA_CD NVARCHAR(20), CNTR_CD NVARCHAR(20))
INSERT INTO @temp VALUES (1, 'TERR A', 'DSTR A', 'RGN A', 'AREA A', 'BUS CNTR A')
INSERT INTO @temp VALUES (1, 'TERR B', 'DSTR A', 'RGN A', 'AREA A', 'BUS CNTR A')
INSERT INTO @temp VALUES (1, 'TERR C', 'DSTR B', 'RGN A', 'AREA A', 'BUS CNTR A')
INSERT INTO @temp VALUES (1, 'TERR A2', 'DSTR A2', 'RGN A2', 'AREA A2', 'BUS CNTR A2')
INSERT INTO @temp VALUES (1, 'TERR B2', 'DSTR B2', 'RGN A2', 'AREA A2', 'BUS CNTR A2')
INSERT INTO @temp VALUES (2, 'TERR C', 'DSTR B', 'RGN A', 'AREA A', 'BUS CNTR A')
INSERT INTO @temp VALUES (2, 'TERR D', 'DSTR C', 'RGN B', 'AREA A', 'BUS CNTR A')
INSERT INTO @temp VALUES (2, 'TERR B2', 'DSTR B2', 'RGN A2', 'AREA A2', 'BUS CNTR A2')
SELECT * FROM @temp
现在,我需要这样的输出:
SEQ_NBR TERR_NM TERR_CNT DSTR_NM DSTR_CNT RGN_CD RGN_CNT AREA_CD AREA_CNT CTR_CD CTR_CNT
1 TERR A 1 DSTR A 2 RGN A 3 AREA A 3 BUS CNTR A 3
1 TERR B 1 DSTR A 2 RGN A 3 AREA A 3 BUS CNTR A 3
1 TERR C 1 DSTR B 1 RGN A 3 AREA A 3 BUS CNTR A 3
1 TERR A2 1 DSTR A2 1 RGN A2 2 AREA A2 2 BUS CNTR A2 2
1 TERR B2 1 DSTR B2 1 RGN A2 2 AREA A2 2 BUS CNTR A2 2
2 TERR C 1 DSTR B 1 RGN A 1 AREA A 2 BUS CNTR A 2
2 TERR D 1 DSTR C 1 RNG B 1 AREA A 2 BUS CNTR A 2
2 TERR B2 1 DSTR B2 1 RGN A2 1 AREA A2 1 BUS CNTR A2 1
这里,SEQ_NBR 1 与 5 个不同的 TERR_CD 相关联,因此 TERR_CNT 为 1。TERR_CD "A" 和 "B" 属于 DSTR_CD A,TERR_CD "C" 属于 DSTR_CD B,因此 DSTR 的计数将为 2 DSTR B 的 A 和 1。同样,对于 RGN_CD "A",计数将为 3。
有人可以帮我查询吗?
【问题讨论】:
-
请在将近 10 个帖子后学会格式化您的代码
-
格式化了你的代码,你又更新了没有格式化?
-
对不起,让我再发一次
标签: sql sql-server tsql aggregate-functions