国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle里的交叉SQL語句寫法

2024-08-29 13:44:35
字體:
供稿:網(wǎng)友

  
實(shí)例說明

資料表結(jié)構(gòu)(紅色為主鍵)==>
主表:TEST_PART_COST_TAB(料號(hào)資料表)
PART_NO  VARCHAR2(20)   
PART_NAME  VARCHAR2(50) 

從表:TEST_PART_COST_DT_TAB(料號(hào)成本資料表)
PART_NO VARCHAR2(10) 
COST_ID VARCHAR2(5) 
COST NUMBER 

數(shù)據(jù)==>
主表資料:
 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語句產(chǎn)生的結(jié)果
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語句寫法:
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: 若主表有資料,從表沒有資料時(shí),交叉后會(huì)沒有相應(yīng)的資料
解決辦法是在WHERE條件里用外連接
where a.part_no = b.part_no(+)

參考資料:
http://www.cnblogs.com/iouniuniu/archive/2004/04/05/5238.aspx 
==>此文的語法與本文的語法不同
http://it.icxo.com/Htmlnews/2004/11/11/454293.htm  
http://www.itpub.net/176727.html

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 克山县| 射洪县| 会泽县| 集安市| 翼城县| 嘉荫县| 峨眉山市| 三亚市| 颍上县| 灵山县| 栾川县| 嘉定区| 左贡县| 定安县| 星座| 许昌市| 平安县| 涟水县| 双流县| 阳曲县| 云和县| 靖西县| 英吉沙县| 凤城市| 萍乡市| 沂源县| 内乡县| 上饶县| 曲松县| 桂阳县| 洛宁县| 河北区| 高雄县| 龙里县| 平邑县| 合江县| 剑河县| 仁寿县| 扎鲁特旗| 凭祥市| 南阳市|