国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 湖北省| 小金县| 修水县| 新巴尔虎左旗| 丰台区| 子长县| 扶沟县| 扎赉特旗| 海南省| 民丰县| 永年县| 顺义区| 昌宁县| 湖南省| 南昌市| 运城市| 抚顺县| 堆龙德庆县| 锦州市| 铅山县| 历史| 建阳市| 宜州市| 城口县| 景东| 太和县| 潢川县| 宜州市| 田林县| 宁化县| 荥经县| 雷山县| 洪洞县| 汪清县| 通山县| 荆门市| 增城市| 达州市| 石景山区| 阳信县| 聂拉木县|