0

我真的希望有人能帮助我。到目前为止,这个问题已经打败了我。我有一张表格,其中包含每个人参加会议的次数。我需要使用出席人数最多的人的第一个字母来查询另一个表中以相同字母开头的姓名。我将不胜感激任何建议。

4

3 回答 3

1

如果您有一个包含总计列的员工姓名表,则可以执行以下操作:

select *
  from other_tab ot
       inner join (select substr(emp_name, 1, 1) first_letter, 
                          rank() over (order by attendences desc) rnk
                     from emp_meeting_count) mc 
               on ot.name like mc.first_letter ||  '%'
 where mc.rnk = 1;

我使用rank()了,因为可能有两个或更多员工的出勤率最高

小提琴:http ://sqlfiddle.com/#!4/2951d/1

于 2013-04-11T13:23:20.733 回答
0

你可以使用 Like 运算符来实现这个场景

SQL WILDCARDS 可用于在表中搜索数据。

SQL 通配符与 SQL LIKE 运算符一起使用。

Syntax

SELECT [* | column_list]

FROM <table_name> WHERE ( column_name)

LIKE <wildcards>;

例子

SELECT cust_code,cust_name,cust_city,cust_country  
FROM customer  
WHERE cust_name LIKE 'S%';

请参阅以下链接以获取信息

http://www.w3resource.com/sql/wildcards-like-operator/wildcards-like-operator.php

http://www.w3schools.com/sql/sql_like.asp

http://msdn.microsoft.com/en-us/library/ms179859.aspx

于 2013-04-11T13:21:26.783 回答
0

这样的事情会起作用吗?我写的是假设

table_abc 包含人员姓名和出席人数 table_xyz 是要检查的另一个表

select result_xyz.* from 
(select substr(name,1,1) valueA from table_abc 
where attendance_count=(select max(attendance_count) from table_abc)) result_abc, 
(select substr(name,1,1) valueB,name from table_xyz) result_xyz
where result_abc.valueA=result_xyz.valueB
于 2013-04-11T13:37:31.300 回答