sql统计重复数据报表的问题

比如我现在有一个表:
负责人 类型 金额
A 1 100
B 1 555
A 2 655
现在要统计出一个这样的表:
负责人 金额(用类型1减去2后得出的)
A XXX
B XXXX
按负责人来进行统计,sql语句怎么写?

第1个回答  推荐于2016-10-03
SELECT A.负责人,A.金额-B.金额
FROM 表 A JOIN 表 B ON A.负责人=B.负责人
WHERE A.类型=1 AND B.类型=2追问

那个上面是一个表,表中有若干负责人(可能会出现重复的),现在是要统计出一个按照负责人来统计他们根据类型1减去类型2后的金额

追答

SELECT A.负责人,A.金额-B.金额
FROM (SELECT 负责人,类型,SUM(金额) AS 金额 FROM 表 GROUP BY 负责人,类型) A JOIN (SELECT 负责人,类型,SUM(金额) AS 金额 FROM 表 GROUP BY 负责人,类型) B ON A.负责人=B.负责人
WHERE A.类型=1 AND B.类型=2

追问

有个问题,如果负责人只有类型1没有类型2或者相反,会查不出来

追答

SELECT ISNULL(A.负责人,B.负责人) 负责人,ISNULL(A.金额,0)-ISNULL(B.金额,0)
FROM (SELECT 负责人,类型,SUM(金额) AS 金额 FROM 表 GROUP BY 负责人,类型) A FULL JOIN (SELECT 负责人,类型,SUM(金额) AS 金额 FROM 表 GROUP BY 负责人,类型) B ON A.负责人=B.负责人
WHERE A.类型=1 AND B.类型=2

本回答被提问者和网友采纳
相似回答