**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
12个月前关门了。
改进这个问题
我试图在sql中创建一个视图,该视图将从假日表中检查一个职员一年中休了多少个假日(例如,staffid 1被输入假日表4次,因此它将显示staffid:1 holidaycount:4)
我试着这样写:
select
holiday.staffid,
staff.staffid,
COUNT(*)
from
staff
inner join holiday on staff.staffid = holiday.staffid
group by staff.staffid;
这给了我一个错误:ora-00918:列定义不明确
编辑:由于代码不正确而更改了代码
3条答案
按热度按时间hfwmuf9z1#
我想你需要这样的东西:
这个
left join
带来相应的记录holiday
,同时允许员工不休假。我在屏幕上加了一个过滤器holiday_date
,这是在问题中描述的。然后您可以聚合和count
.您还可以使用横向联接或子查询来表示这一点,这样可以更容易地从中显示更多的列
staff
:daolsyd02#
下面的查询应该可以工作,您缺少
holiday
中的表join
条件。如果两个staffid's
相同,则只使用其中一个。hwazgwia3#
您需要使用
staffid
数一数holiday_id
(假日表的主键)因为count(*)
可能对你没什么用