首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询oracle中缺少右括号错误

查询oracle中缺少右括号错误
EN

Stack Overflow用户
提问于 2014-05-18 10:56:38
回答 3查看 91关注 0票数 3

需要表-

Habits(conditionId,名称)

Patient(patientId,名称、性别、DoB、地址、州、邮政编码、homePhone、businessPhone、maritalStatus、职业、期限、单位、种族、registrationDate、GPNo、NaturopathNo)

PatientMetabolic (functionNo,patientId,score)

问题是-

问题-显示详细的病人(如姓名,性别,地址,邮政编码,道布)谁吸烟和有最高(最严重)的代谢功能。

(吸烟的条件是习惯表中的H1 )(代谢功能在病人代谢表functionNo中)(要找出最严重的代谢功能,我们需要创建一个评分,以告诉谁的代谢功能最强)。

我的查询-

代码语言:javascript
复制
SELECT * 
FROM patient 
where patientid IN (SELECT patientid,SUM(score) as totalscore 
                    from PATIENTMETABOLIC 
                    where patientid IN (SELECT patientid 
                                        from patienthabit 
                                        where conditionid = 'H1') 
                    group by patientid 
                    order by totalscore desc);

错误:

ORA-00907:缺少右括号

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-18 13:15:11

试试这个:

代码语言:javascript
复制
SELECT *
  FROM PATIENT
  WHERE PATIENTID = (SELECT PATIENTID
                       FROM (SELECT patientid, SUM(score)
                               from PATIENTMETABOLIC 
                               where patientid IN (SELECT patientid
                                                     from patienthabit 
                                                     where conditionid = 'H1') 
                               group by patientid 
                               order by SUM(score) desc)
                       WHERE ROWNUM = 1);

SQLFiddle在这里

分享并享受。

票数 1
EN

Stack Overflow用户

发布于 2018-09-25 07:51:31

实现此目的的另一种方法是使用联接。

代码语言:javascript
复制
select * from  (select  p.patientid,p.name,sum(pm.score) as total from patient p join patienthabit ph on p.patientid = ph.patientid
  and ph.conditionid = 'H1' Left join patientmetabolic pm 
  on p.patientid = pm.patientid  group by  p.patientid,p.name order by 3 desc) where ROWNUM = 1;
票数 2
EN

Stack Overflow用户

发布于 2014-05-18 11:02:32

因为第一个内部查询返回耐心和总分,所以不能使用它作为针对IN操作符的列表。

此查询的结果可能与查询的结果类似:

代码语言:javascript
复制
SELECT p.* 
FROM patient p JOIN
     patienthabit ph ON p.patientid=ph.patientid
WHERE ph.conditionid='H1'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23721145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档