国产探花免费观看_亚洲丰满少妇自慰呻吟_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中國高層頻繁變動之謎

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 恩平市| 通城县| 新晃| 平邑县| 周口市| 黄平县| 济南市| 格尔木市| 阿坝县| 建昌县| 康马县| 三河市| 镇远县| 福贡县| 庆阳市| 安宁市| 明光市| 宁陵县| 安泽县| 甘肃省| 鞍山市| 邳州市| 镇巴县| 铜鼓县| 临汾市| 开远市| 湟中县| 博湖县| 潍坊市| 和硕县| 明溪县| 庆城县| 高雄市| 马龙县| 黎城县| 衡阳市| 钟祥市| 北川| 永胜县| 互助| 收藏|