当前位置: 首页 > 知识库问答 >
问题:

需要编写查询的帮助Oracle SQL

闾丘选
2023-03-14

编写一个查询以显示staffid、费用代码、专科id、专科名称、会诊日期、患者号和到期日将使用会诊日期+21计算

SELECT
    staffid, 
    chrgcode,
    dateconsulted,
    patientno,
    (dateconsulted + 21) "Due Date"
FROM
    staff_speciality,
    staff,
    speciality,
    consultation;

STAFFID NOT NULL CHAR(2)
FIRSTNAME VARCHAR2(20)
LASTNAME VARCHAR2(20)
角色VARCHAR2(15)
性别CHAR(1)
日期连接日期
DATELEFT DATE SQL>描述staffspeciality错误:
ORA-04043:对象staffspeciality不存在
SQL>描述Staff_Speciality
名称为空?类型

STAFFID非空字符(2)
指定非空字符(4)
DATEQUALIFIED非空日期
validtildate日期
详细信息VARCHAR2(100)
SQL>说明咨询名称为空?类型

CHRGCODE NOT NULL CHAR(7)STAFFID NOT NULL CHAR(2)DATECONSULTED NOT NULL DATE STARTTIME NUMBER(4,2)
PATIENTNO CHAR(7)
SQL>从staff_speciality,staff,speciality,consulted,PATIENTNO,(DATECONSULTED+21)中选择STAFFID,CHRGCODE,DATECONSULTED,PATIENTNO,(DATECONSULTED+21)“到期日”
2;
选择STAFFID,CHRGCODE,DATECONSULTED,PATIENTNO,(DATECONSULTED+21)“到期日”
*
第1行错误:
ORA-00918:列定义不明确

共有1个答案

杭涵映
2023-03-14

您可以使用ANSI-92语法构造这样的查询

SELECT s.staffid, chrgcode, dateconsulted, patientno, (dateconsulted + 21) "Due Date"
  FROM staff_speciality ss 
  JOIN staff s ON s.staffid = ss.staffid
  JOIN speciality sp ON sp.specid = ss.specid
  JOIN consultation c ON c.staffid = s.staffid

对选择列表中的staffid列进行别名(您也可以显式地对每个列进行别名)尤为重要,因为有三个表将该列作为公共列,并且如果不指定,则Oracle无法知道在没有别名的情况下选择了哪个表的列,因此会引发ORA-00918:column Ambiguulyly Defined

 类似资料:
  • 我的问题类似于SQL选择组查询。但是架构发生了变化,我想要不同的结果,如下所述。给定链接的解决方案没有给我正确的解决方案。您可以使用SQL小提琴来解决这个问题。 下面是我的桌子 表1 现在,我想显示每个产品的两个最低金额,如果金额相同,那么任何人都按照升序排列... 所以我想构建单个SQL查询,它给我的结果如下。 请帮我建立这样的查询。

  • 需要帮助编写一个cassandra udf来添加/除/乘两个变量。尝试下面的代码,但它似乎不工作。而且我没有在Java的经验,所以可能是我不能调试。感谢你的帮助。

  • 问题内容: 好吧,我可能也已在较早之前发布了此内容,但到目前为止仍找不到答案,因此请帮助我解决这个问题。 我的数据库结构: ATT (表) Act_ID(PK) Assigned_To_ID(FK,请参阅) Project_ID(FK,请参阅) Product_ID(FK,请参阅) 状态(可以是) 产品表 产品编号(PK) 产品名称 项目表 Project_ID(PK) 项目名 员工表 Emp_I

  • 问题内容: 我正在使用Glassfish和JSF构建我的第一个Java EE Web应用程序。我对条件查询还很陌生,我有一个需要执行的查询,但是javaee6教程的示例似乎有些稀疏。无论如何,我很难创建查询。 目标:我想让公司存储最多的文件。公司与Documents有OneToMany关系。文档与多个表具有ManyToOne关系,“用户类型”列将它们区分开。 MySQL查询: 谢谢 --updat

  • 我有这张桌子: 这是我的SQL查询: 我想要的查询是: > 我希望获得符合某些条件的记录,特别是字段在最近24小时内的记录 我需要获得紧接在#1中的记录之前的记录 将#1中的结果进一步过滤到其价格列在记录的历史记录中具有不同值(而不是-1)的记录 我面临的问题是查询太慢了。我有一百万张唱片。执行查询大约需要2分钟。我猜GROUP BY会使查询变慢。我想我需要做一个综合指数,但我不知道怎么做。 解释

  • 问题内容: 怀疑在VBA ADO和Sql查询中… 我有2张纸,即adodc1,adodc2(在一本工作簿中) 在adodc1中具有“名称”,“部门”列,有时其具有“ Sect”列 在adodc2中具有“名称”,“部门”,“宗派”列 我想要的是当我运行Query..Vba时需要检查adodc1是否具有Sect列。 要返回为空值.. 下面的代码取自“”,根据我的需要进行了更改 它将执行的工作是来自两张