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

首頁 > 數據庫 > Oracle > 正文

案例討論:Oracle數據庫的分組問題

2024-08-29 13:50:04
字體:
來源:轉載
供稿:網友
曾經,有個用戶提出了以下的一個問題,隨即有很多朋友提供了他們的解決方案,我們的專家將這些記錄整理出來,供大家參考學習。   問:要求把表B按照CLM001分組求和計算score的值,然后加到表A中對應CLM001的score的值。如何寫更新表A的SQL語句?  表A:  CLM001        SCORE  001                 0  002                 0  003                 0  004                 0  其中CLM001是主鍵。  表B:  ID CLM001 SCORE  0      001       12  1      001       24  2      002      110  3      004      220  4      004       20      答:
  with r as {  select CLM001 ,sum(score) as total from b group by CLM001  }  update a set score = (select total from r where r.CLM001 =a.CLM001)  where exists (select 1 from r where r.CLM001 =a.CLM001)
  點評:此方法需要寫存儲過程,否則在程序中沒法用。
  create or replace PRocedure p_test  as  v_clm001 a.clm001%type;  cursor c_record is  select distinct clm001 from b;  begin  open c_record;  loop  fetch c_record into v_clm001;  exit when c_record%notfound;  update a set score =(select sum(score) from b where clm001=v_clm001)  where clm001=v_clm001;  end loop;  end;
  點評:這是在PL/SQL中的語句,此問題用PL/SQL解決也不失為一個簡單的方法。
update a set a.score = a.score + (select b.score from a a,   (select CLM001,sum(score) from b group by CLM001) b where a.CLM001 = b.CLM001)
  點評:最佳答案,此類問題用視圖解決很方便!


上一篇:Oracle PL/SQL語言初級教程之異常處理

下一篇:破解Oracle中國高層頻繁變動之謎

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 邵东县| 商丘市| 新蔡县| 柯坪县| 通海县| 修文县| 石嘴山市| 康乐县| 贞丰县| 福建省| 黄骅市| 遵义市| 广州市| 沙湾县| 涿州市| 临邑县| 凌云县| 德阳市| 堆龙德庆县| 固镇县| 涿鹿县| 花莲市| 麦盖提县| 琼结县| 宜兴市| 秭归县| 汪清县| 田阳县| 盐源县| 湘潭县| 林西县| 江永县| 宁德市| 施秉县| 江川县| 禹州市| 全椒县| 远安县| 高阳县| 淮北市| 沙洋县|