当前位置: 代码迷 >> Oracle管理 >> 请教一个请教个ORACLE的简单语句
  详细解决方案

请教一个请教个ORACLE的简单语句

热度:90   发布时间:2016-04-24 04:12:03.0
请问一个请问个ORACLE的简单语句
一、产品表Product,用于存放产品基本信息
ID      NAME     KUAIHAO   Cenben
1        S1          111             c1
2        A1          222             c1
3        P1          111             c2
......
一个产品一个名字一个块号一个册本号,一个册本内拥有多个产品,一个块号也包含多个产品

二、册本表Cenben,用于存放册本信息
ID    Cenben     Beizhu
1       C1            xxx
2       C2           xxxx

现想得到一个视图
ID    Cenben     kuaihao  Beizhu   ProductNum
1        C1            111       xxx         24
2        C2            222      xxxx        45

其中kuaihao取一个册本内包含的所有product中属于最多的KUAIHAO属性,produncNum为册本内包含的产品总和 


小弟初学,向各位老鸟请教下 ~ 
------解决思路----------------------
select B.ID,
MAX(B.Cenben) Cenben,
MAX(A.KUAIHAO)KEEP(DENSE_RANK LAST ORDER BY A.S,A.KUAIHAO) kuaihao,
MAX(B.Beizhu) Beizhu,
SUM(A.S) ProductNum
from (
    SELECT KUAIHAO,Cenben,COUNT(1) S
    FROM Product
    GROUP BY KUAIHAO,Cenben
) A,Cenben B
WHERE A.Cenben=B.Cenben
GROUP BY B.ID
  相关解决方案