sql server中用聚合函数查询退休人的开销信息

1创建表

create database Math
go
use Math
go
CREATE TABLE A
(
ID INT PRIMARY KEY IDENTITY,--自增主键
ID_CARD VARCHAR(18) NOT NULL,--身份证编号
Person_Type VARCHAR(3) NOT NULL,--是否在职
Fee_Date DATETIME NOT NULL,--开销时间
Fee_Amount DECIMAL(18,2) NOT NULL--开销金额
)
go
INSERT INTO A VALUES ('11010119000101000',1,'2001-01-01',20.00)
INSERT INTO A VALUES ('11010119000101002',1,'2002-01-01',20.00)
INSERT INTO A VALUES ('11010119000101001',1,'2003-01-01',20.00)
INSERT INTO A VALUES ('11010119000101002',2,'2004-01-01',20.00)
INSERT INTO A VALUES ('11010119000101003',2,'2005-01-01',20.00)
INSERT INTO A VALUES ('11010119000101004',1,'2006-01-01',20.00)
INSERT INTO A VALUES ('11010119000101001',1,'2007-01-01',20.00)
INSERT INTO A VALUES ('11010119000101003',1,'2008-01-01',20.00)
INSERT INTO A VALUES ('11010119000101001',1,'2009-01-01',20.00)
INSERT INTO A VALUES ('11010119000101004',2,'2010-01-01',20.00)

2.查询退休人的从到公司到退休至今的总开销 和 没有退休人的总开销

SELECT SUM(C.Fee_Amount) Fee_Amount,SUM(C.ID) 人次,C.Person_Type
FROM
(SELECT ID_CARD,SUM(Fee_Amount) Fee_Amount ,MAX(Person_Type) Person_Type,COUNT(ID) ID FROM A GROUP BY ID_CARD )C
GROUP BY C.Person_Type

 3.查询效果

原文地址:https://www.cnblogs.com/gsh0921/p/6594969.html