SQL 题目

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:12:47
SQL,表test:
编号 id 、金额 price 、类型 type(1 现金支付 2 银行支付)
请用一条sql把4个字段都显示:
现金支付数量 现金支付金额 银行支付数量 银行支付金额 ( 这几个都是字段 )

select * from
(select count(id) 现金支付数量,sum(price) 现金支付金额 from test where type=1),
(select count(id) 银行支付数量,sum(price) 银行支付金额 from test where type=2)

或者
select * from
(select distinct id from test) a
left join
(select id,count(*),sum(price) from test where type=1 group by id) b
on a.id=b.id left join
(select id,count(*),sum(price) from test where type=2 group by id) c
on a.id=c.id
order by a.id

或者
select
sum(case when type=1 then 1 else 0 end) 现金支付数量,
sum(case when type=1 then price else 0 end) 现金支付金额,
sum(case when type=2 then 1 else 0 end) 银行支付数量,
sum(case when type=2 then price else 0 end) 银行支付金额
from test

或者
select id,
sum(case when type=1 then 1 else 0 end) 现金支付数量,
sum(case when type=1 then price else 0 end) 现金支付金额,
sum(case when type=2 then 1 else 0 end) 银行支付数量,
sum(case when type=2 then price else 0 end) 银行支付金额
f