网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > oracle里的交叉sql语句写法  

oracle里的交叉sql语句写法

2005-11-17  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  实例说明
  
  资料表结构(红色为主键)==>
  主表:test_part_cost_tab(料号资料表)
  part_no varchar2(20)
  part_name varchar2(50)
  
  从表:test_part_cost_dt_tab(料号成本资料表)
  part_no varchar2(10)
  cost_id varchar2(5)
  cost number
  
  数据==>
  主表资料:
   part_no part_name
  1 1000      name1000
  2 1001      name1001
  从表资料:
  part_no cost_id cost
  1 1000    100       1.1
  2 1000    200       1.2
  3 1000    300       1.3
  4 1000    321       1.321
  5 1001    100       2.1
  
  交叉资料==>
  sql语句产生的结果
  part_no part_name cost_100 cost_200 cost_300 cost_321
  1 1000     name1000    1.1          1.2         1.3    1.321
  2 1001     name1001    2.1          0          0        0
  
  具体的交叉sql语句写法:

网管网www_bitscn_com


  select a.part_no,a.part_name,
  --sum(b.cost)
  sum(case when b.cost_id = ''100'' then b.cost else 0 end) as cost_100,
  sum(case when b.cost_id = ''200'' then b.cost else 0 end) as cost_200,
  sum(case when b.cost_id = ''300'' then b.cost else 0 end) as cost_300,
  sum(case when b.cost_id = ''321'' then b.cost else 0 end) as cost_321
  
  from test_part_cost_tab a,test_part_cost_dt_tab b
  where a.part_no = b.part_no
  group by a.part_no,a.part_name
  
  ps: 若主表有资料,从表没有资料时,交叉后会没有相应的资料
  解决办法是在where条件里用外连接
  where a.part_no = b.part_no(+)
TAGs语句   交叉   资料   sum   casewhenb.cost_id   thenb.costelse0end    
 上一篇:SQL 调试指南 - 数据库执行计划(图)   下一篇:cube子句的用法
相关文章列表
oracle里的交叉sql语句写法 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL - 嵌套游标 cursor-PLSQL
2.用一个实例讲解Oracle数据库的PL/SQL语句
3.PL/SQL----触发器-PLSQL
4.mysql存储过程写法—动态参数运用-PLSQL
5.PL/SQL Developer导出分区索引脚本-PLSQL
6.PL/SQL collection— table() 函数-PLSQL
7.SQL Server 2005 中的架构与用户-PLSQL
8.Oracle数据库维护常用SQL语句集合(2)-P
9.Oracle数据库维护常用SQL语句集合(3)-P
10.再议SQL Server临时表和表变量-PLSQL
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■