3
回答
ORACLE 复合查询问题
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

 

先谢谢红薯哥的回答,原来问问题也能上瘾

原SQL语句这样写的

"select a.areaid, A.AREANAME, count(b.orgcity) c
from area a, gcp_org b
where a.areaid = b.areaid(+) and instr(a.areaid, '"+areaid+"') = 1
group by a.areaid, A.AREANAME
order by a.areaid"

100100000000 华北 0
100101000000 北京市 0
100102000000 天津市 3
100103000000 河北省 0
100104000000 山西省 0

我想让华北那里写下面几个城市count的和,应该怎么写呢

举报
唯一
发帖于8年前 3回/542阅
共有3个答案 最后回答: 8年前

上表结构

CREATE TABLE CDEUSER.AREA
(
  AREAID    VARCHAR2(12 BYTE),
  AREANAME  VARCHAR2(50 BYTE)
)

CREATE TABLE CDEUSER.GCP_ORG
(
  ORGID         INTEGER,
  ORGTYPE       INTEGER,
  ORGCOUNTRY    VARCHAR2(100 BYTE),
  ORGNAME       VARCHAR2(200 BYTE),
  ORGNAMESHORT  VARCHAR2(100 BYTE),
  ORGREPRESENT  VARCHAR2(100 BYTE),
  ORGSTATE      VARCHAR2(100 BYTE),
  ORGCITY       VARCHAR2(100 BYTE),
  ORGADDRESS    VARCHAR2(300 BYTE),
  ORGURL        VARCHAR2(100 BYTE),
  ORGFUNDING    VARCHAR2(100 BYTE),
  EMAIL         VARCHAR2(100 BYTE),
  TELEPHONE1    VARCHAR2(20 BYTE),
  AREAID        VARCHAR2(12 BYTE)
)

其中gcp_org.state外键area.areaname gcp_org.areaid外键area.areaid

下午问了下我的头儿,他老人家给了个答案,我自己结贴

SELECT   d.areaid, d.areaname, COUNT (d.areaname) trialct
       FROM area a,
            trial_description b,
            gcp_org c,
            (SELECT *
               FROM area
              WHERE INSTR (areaid, '00000000') > 0) d
      WHERE a.areaid = c.areaid
        AND b.orgid = c.orgid
        AND SUBSTR (d.areaid, 1, 4) = SUBSTR (a.areaid, 1, 4)
   GROUP BY d.areaid, d.areaname;

顶部