当前位置: 代码迷 >> Sql Server >> 小计统计的写法如何写
  详细解决方案

小计统计的写法如何写

热度:19   发布时间:2016-04-24 10:02:34.0
小计统计的写法怎么写啊
比如 表A
ID,UCODE, KEY
------------------------
1,A01,0
2,A01,0
3,A01,1
4,A01,0
5,A01,1

我要想的结果,就是汇总KEY,一共是几条,是1的几条,是0的几条
UCODE,KEY-NOTE
----------------------------------
A01, 一共5条,1的2条,0的3条
------解决方案--------------------
IF OBJECT_ID('#t') IS NOT NULL
DROP TABLE #t
GO

CREATE TABLE #t
(
 ID INT,
 Ucode VARCHAR(32),
 [KEY] int
)

INSERT INTO #t(ID,Ucode,[Key]) VALUES(1,'A01',0)
INSERT INTO #t(ID,Ucode,[Key]) VALUES(2,'A01',0)
INSERT INTO #t(ID,Ucode,[Key]) VALUES(3,'A01',1)
INSERT INTO #t(ID,Ucode,[Key]) VALUES(4,'A01',0)
INSERT INTO #t(ID,Ucode,[Key]) VALUES(5,'A01',1)

SELECT  Ucode, COUNT(CASE WHEN [KEY] = 0 THEN 1  END) N'0的条数',
COUNT(CASE WHEN [key] = 1 THEN 1 END) N'1的条数',
COUNT([KEY]) N'汇总'
FROM #t GROUP BY Ucode


------解决方案--------------------
引用:
自己搞定


SELECT UCODE, '一共'+COUNT(*)+'条,1的'+SUM(K1)+'条,0的'+SUM(K2)+'条'
FROM(
SELECT ID, UCODE
, CASE WHEN [KEY]=1 THEN 1 ELSE 0 END AS K1
, CASE WHEN [KEY]=0 THEN 1 ELSE 0 END AS K2
FROM A
)AS A1
GROUP BY UCODE
哈哈,思路差不多
------解决方案--------------------
引用:
Quote: 引用:

自己搞定


SELECT UCODE, '一共'+COUNT(*)+'条,1的'+SUM(K1)+'条,0的'+SUM(K2)+'条'
FROM(
SELECT ID, UCODE
, CASE WHEN [KEY]=1 THEN 1 ELSE 0 END AS K1
, CASE WHEN [KEY]=0 THEN 1 ELSE 0 END AS K2
FROM A
)AS A1
GROUP BY UCODE
哈哈,思路差不多

不过应该是Count()吧
  相关解决方案