1、有以表结构如下
id goodsid scount type
6 3 40 out
5 2 30 in
4 1 45 out
3 3 20 out
2 2 20 in
1 1 10 in
要查询到如下结果
goodsid 进货 出库 库存
解:
select goodsid,sum(a.sin) as aa,sum(a.sout) as bb ,sum(a.sin)-sum(a.sout)
from
(select id,goodsid, case type when 'in' then scount else '0' end as sin,case type when 'out' then scount else '0' end as sout
from test2) as a
group by a.goodsid
2、有表结构如下
name result type
张三 95 语文
张三 85 数学
张三 87 英语
李四 67 数学
李四 85 英语
王五 86 语文
王五 78 数学
要求查询出所有学科成绩都再80以上的学生名单
解:
select distinct(name)
from test3
where name not in(
select NAME
from test3
where result<80
)