有表A(单位表)
编号(bh) 单位名称(dwmc)
----------------------
001 a单位
002 b单位
003 c单位表B(数据表)
dwbh(单位编号) cpmc(产品名称) sl(数量) jldw(计量单位三种,吨 千克 克)
-------------------------------------------------------------------
002 AAAAAAA 1 吨
003 BBBBBBB 5 千克
001 CCCCCCC 10 千克
002 BBBBBBB 200 克
002 CCCCCCC 50 吨====================================
如何构建统计查询得到如下结果cpmc(产品名称) dwmc1(单位001) dwmc2(单位002) dwmc3(单位003) ......
-------------------------------------------------------------------------------
AAAAAAA 0.00 1000.00 0.00
BBBBBBB 0.00 0.20 5.00
CCCCCCC 10.00 50000.00 0.00
编号(bh) 单位名称(dwmc)
----------------------
001 a单位
002 b单位
003 c单位表B(数据表)
dwbh(单位编号) cpmc(产品名称) sl(数量) jldw(计量单位三种,吨 千克 克)
-------------------------------------------------------------------
002 AAAAAAA 1 吨
003 BBBBBBB 5 千克
001 CCCCCCC 10 千克
002 BBBBBBB 200 克
002 CCCCCCC 50 吨====================================
如何构建统计查询得到如下结果cpmc(产品名称) dwmc1(单位001) dwmc2(单位002) dwmc3(单位003) ......
-------------------------------------------------------------------------------
AAAAAAA 0.00 1000.00 0.00
BBBBBBB 0.00 0.20 5.00
CCCCCCC 10.00 50000.00 0.00
解决方案 »
- 如何寫PROC去刪除文件
- 查询条件
- oracle的EBS中的数据组(data group)是什么
- oralce的访问其他数据库的表
- Error while trying to retrieve text for error ORA-12538
- 如何解决安装Oracle10g时先决条件检查未通过!
- oracle的透明网关可直联informix吗?
- Oracle 10g 怎么导出和转换已有表的表空间?
- 关于更新 如何对 两个表关联后查出的记录的某个表栏位进行更新???
- 字符串“拼接”
- 会的请进!!(oracle9i导入问题)
- 使用sql loder 将txt 导入到oracle 数据库如何去掉整张表每个列的空格?
select a.dwmc cpmc,
max(decode(jldw,'千克'),sl,0) dwmc1,
max(decode(jldw,'吨'),sl*1000,0) dwmc2,
max(decode(jldw,'克'),sl/1000,0) dwmc3,
from a,b
where a.bh=b.dwbh
group by a.dwmc
BBBBBBB 5.00 0.00 0.20
否则没法做的
你的排列顺序看上去应该是
千克 1吨=1*1000 千克 1克=1/1000千克
sum(case when dwbh='001'then sl else 0 end) part1,
sum(case when dwbh='002'then sl else 0 end) part2,
sum(case when dwbh='003'then sl else 0 end) part3
from 表2 group by cpmc
如果部门只有几个的话,可以这么做,也只是个提示 你看看
select cpmc,
sum(decode(dwbh,'001',decode(jldw,'千克',sl,decode(jlwd,'吨',sl*1000,sl/1000)),0)) dw1,
sum(decode(dwbh,'002',decode(jldw,'千克',sl,decode(jlwd,'吨',sl*1000,sl/1000)),0)) ,dw2
sum(decode(dwbh,'003',decode(jldw,'千克',sl,decode(jlwd,'吨',sl*1000,sl/1000)),0)) dw3
from b
如果是不订数目的,建议还是使用存储过程
http://topic.csdn.net/u/20080416/11/910e40c1-60f1-441f-8b0f-19a969d30f77.html