oracle表如下,请用SQL语句显示成如下形式。
产品名 产品数量 仓库ID
A产品 1 1
A产品 2 3
B产品 1 1
C产品 6 4
… … …
用如下形式显示
产品名 仓库ID_1 仓库ID_2 仓库ID_3 仓库ID_4
A产品 1 0 2 0
B产品 1 0 0 0
C产品 0 0 0 6
产品名 产品数量 仓库ID
A产品 1 1
A产品 2 3
B产品 1 1
C产品 6 4
… … …
用如下形式显示
产品名 仓库ID_1 仓库ID_2 仓库ID_3 仓库ID_4
A产品 1 0 2 0
B产品 1 0 0 0
C产品 0 0 0 6
解决方案 »
- oracle存储过程的问题,是新手,不知道哪错了,希望大家给一下指点
- 请问关于统计查询的问题
- oracle 如何对doc文件进行全文检索
- 如何select被锁定记录
- 如何玩转大数据量
- 问个问题,知道ORALCE数据库文件,但是不知道如何转化为SQL SERVER 2000
- RTrim(' ') = null,也就是 '' is null, 有没有知道为什么?好怪呀!
- oracle9.0.1.1.1由于权限无法登陆的问题
- exception的问题
- 在哪儿可以下载Oracle9i Application Server Release 2 for win2000???
- 关于oracle内行数据 显示成 列数据
- 问下这个语句怎么写啊、????着急 在线等!!!!!!
--如果很多仓库就拼结字符串吧
with t(产品名,产品数量,仓库ID) as(
select 'A产品',1,1 from dual
union all select 'A产品',2,3 from dual
union all select 'B产品',1,1 from dual
union all select 'C产品',6,4 from dual
)
select 产品名,
sum(decode(仓库ID,1,产品数量,0)) 仓库ID_1,
sum(decode(仓库ID,2,产品数量,0)) 仓库ID_2,
sum(decode(仓库ID,3,产品数量,0)) 仓库ID_3,
sum(decode(仓库ID,4,产品数量,0)) 仓库ID_4
from t group by 产品名 order by 产品名;
/*
产品名 仓库ID_1 仓库ID_2 仓库ID_3 仓库ID_4
-------------- ---------- ---------- ---------- ----------
A产品 1 0 2 0
B产品 1 0 0 0
C产品 0 0 0 6
*/
max(case ckID when 2 then num else 0 end) '仓库2',
max(case ckID when 3 then num else 0 end) '仓库3',
max(case ckID when 4 then num else 0 end) '仓库4' from aaa
group by name