读取重复数据。
TYPE MONEY CLASS
电费 100 支出
押金 100 收入
电费 50 支出
电话费 200 支出
押金 500 收入
押金 400 支出
烟 1000 收入
酒 200 收入
酒 100 收入
求得结果:
收入部分:
押金:600
烟 1000
酒 30
支出部分:
电费:150
电话费:200
押金:400
[解决办法]
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (TYPE nvarchar(6),MONEY int,CLASS nvarchar(4))
insert into [TB]
select '电费',100,'支出' union all
select '押金',100,'收入' union all
select '电费',50,'支出' union all
select '电话费',200,'支出' union all
select '押金',500,'收入' union all
select '押金',400,'支出' union all
select '烟',1000,'收入' union all
select '酒',200,'收入' union all
select '酒',100,'收入'
select * from [TB]
select CLASS,TYPE,sum(MONEY) as money from TB group by CLASS,TYPE
ORDER BY CLASS,TYPE
/*
收入酒300
收入押金600
收入烟1000
支出电费150
支出电话费200
支出押金400*/SELECT CLASS ,
CASE WHEN TYPE LIKE '%烟%' THEN '烟'
WHEN TYPE LIKE '%酒%' THEN '酒'
ELSE type
END TYPE ,
SUM(MONEY) MONEY
FROM TB
GROUP BY CLASS ,
CASE WHEN TYPE LIKE '%烟%' THEN '烟'
WHEN TYPE LIKE '%酒%' THEN '酒'
ELSE type
END
ORDER BY CLASS ,
type