我想知道从三个表中获取信息的最佳方法是什么。 我要显示的是按项目统计的所有员工人数,并将其与项目名称和pnumber链接起来。 我从WORKS_ON tbl中找到哪个雇员在哪个项目上,该项目具有Essn(与带有SNN的EMPLOYEE TABLE匹配)和Pno(与PROJECT Ttables pnumber匹配)的记录。
我这样做:

Select pno, count(*) as empnum
FROM WORKS_ON work inner join employee emp inner join project
on work.essn=emp.ssn
group by work.pno
where pnumber in 
(select pno from WORKS_ON)

我知道这是错误的,但不确定要去哪里。

编辑:然后我尝试

SELECT
project, employee
inner join works_on on WORKS_ON.essn = EMPLOYEE.SSN
INNER JOIN WORKS_ON on works_on.pno = PROJECT.pnumber
GROUP BY
PROJECT.Pnumber

但仍然没有去。 它说project.pnumber无效的标识符

#1楼 票数:0

你近了 您需要加入项目表,如下所示

SELECT
    PROJECT.PNUmber, 
    COUNT(*)
INNER JOIN WORKS_ON on EMPLOYEE.SSN = WORKS_ON.essn
INNER JOIN PROJECT on WORKS_ON.pno = PROJECT.pnumber
GROUP BY PROJECT.Pnumber

  ask by zissler translate from so

未解决问题?本站智能推荐:

1回复

如何更改表格的布局/结构?

我目前有一个包含 3 列的表格。 最好将这些列描述为 group_id、task 和 task_count。 最多有 15 个可能的任务和超过 500,000 个 group_id。 task_count 是在该任务的 group_id 中发生的事件数。 目前,该表如下所示: 所以在 5555 组
4回复

如何在不影响已经存在的值的情况下更改列的属性?

简而言之-在oracle数据库中,我想创建一列varchar2(16),现在为varchar2(8),而不影响值presnet。 我已经尝试过了,它确实很奇怪。 我尝试的查询是-修改表SOME_TABLE修改(SOME_COL varchar2(16)); 但是当我运行上面的查询时,表中
1回复

如何在一个列中引用两个外键属性?

我正在Oracle SQL Developer中构建数据库。 在这种情况下,我有一个包含两个流动站的主表。 这是该表的代码: 我目前拥有它的方式是,此表中有两个流动站。 (请参阅帖子末尾的图片) 还有另一个表称为Thermal_System_Components。 两个流动站都
1回复

如何在APEX5.1中更改单个行的值?

我已经将我的两列转换为按钮,用户可以用来更改行信息。 它们与两个进程相关联,这两个进程应更改用户单击同一行的多个值。 但是,我无法在过程中选择特定字段,而只能更新列中的所有值。 有没有办法让我只更新用户单击同一行中的某些字段? 这是一个愚蠢的问题,但是我是忙碌部门中的新手,因此将对
1回复

如何在plsql上为return语句编辑游标属性?

我想从一个函数返回一个游标,我已经读到可以使用: 接着 我尝试了curs.att:='something'但出现错误 另请阅读我可以做自己的类型: 然后 这次我没有在assign而是在return语句中得到一个错误。 如果我将var类型更改为我的类型,则无法获取该值。
1回复

更改表格中的列类型

我在Oracle中有一个名为Deal的数据表,其中有四列: DealID:(PK) LegID 原始ID 描述 问题是,如果我想插入一个带有description = A的交易,则LegID和OrigID属性必须是唯一的,否则就没有问题。 我怎样做这张支票? 我曾想过插入
1回复

在Query中查找GROUPBY函数的多个属性

我有一张这样的桌子 我有上面的结果使用 但是,如果我想列出cnt> 1的所有movie_id我的查询失败。 有没有办法得到你想要的结果?
4回复

在Oracle中创建布尔属性?[重复]

这个问题在这里已有答案: Oracle 8中的 布尔字段 答案 我必须在Oracle中创建一个表,我必须使用布尔类型创建一个列。 你能告诉我怎么办? 我在互联网上搜索过但我找不到明确的答案。