当前位置: 代码迷 >> Oracle管理 >> 求技术NB逻辑明晰的XD指教存储过程写法
  详细解决方案

求技术NB逻辑明晰的XD指教存储过程写法

热度:88   发布时间:2016-04-24 04:17:19.0
求技术NB逻辑清晰的XD指教存储过程写法
需求:使用Oracle存储过程,比较出A表id在B表中nums最小的sid,最小nums相同时取value最大的那条。
存在

A表:
id        sid
1839  6
B表(group by sid后的):
id           name                                      sid           nums    value
1839     00:23:89:7B:0C:10 11 9     225
1839    00:23:89:7B:0C:10 1 9      308
1839    00:23:89:7B:0C:10 6 14     190

我现在卡在了,存储过程取B表RS结果一次只能取出一条,没发比较了。
技术不强逻辑不清,求指教自定义数组还是分析函数,语法逻辑怎么组织
------解决方案--------------------
以ID为1839为例:
SELECT SID FROM (SELECT SID,ROWNUM FROM B WHERE B.ID=1839 ORDER BY NUMS,VALUE DESC) WHERE ROWNUM=1

取B表中ID为1839的数据,按NUMS升序、VALUE降序排序,第一条数据的SID即为符合要求数据。
  相关解决方案