2017-03-10 8 views
-1

従業員データベースがあり、従業員が複数回出現しています。従業員部門の一意の名前

  • 同じ従業員のインスタンスには、従業員部門があります。他の場合のように、従業部門が存在しない場合もあります。このために私は従業員の部門と一緒に従業員の名前を区別する必要があります。

  • 従業員の中には、社員部門がまったくないものがあります。このため私は明確な従業員名を見つける必要があります。

マイクエリ:

------for each unique employee, find department 
--select columns 
select 
    a.employee_name,b.employee_dept 
from 
    --unique employee names 
    (
    select 
    distinct employee_name 
    from 
    employeeDB 
    where 
    employee_name is not null and employee_name != '' 
    order by employee_name asc 
) as a, 
    --employee name and employee dept sorted 
    (
    select 
    employee_name,employee_dept 
    from 
    employeeDB 
    where employee_name is not null and employee_name != '' 
    order by employee_name asc, employee_dept desc 
) as b 
--condition for join 
where 
    a.employee_name = b.employee_name 
order by a.employee_name asc, b.employee_dept desc 
limit 1000 

私は結果がユニークな結果を返していない理由はわかりません。私は申し訳ありませんが、私は、言葉で表現再

以下
Name Dept 
A  DepA 
A  DepB 
A 
B  DepA 
B 
C  DepZ 
D 
E 

答えて

1

と同様の結果が、これは、すべての一意の名前(それをグループ化することによって)を取得し、それを各

select employee_name, max(employee_dept) as dept 
from employeeDB 
where employee_name is not null and employee_name != '' 
group by employee_name 
order by employee_name asc 
limit 1000 
+0

を見つけることができます(アルファベット順)最高employee_deptをつかむだろう取得しています私の質問。 2番目の列は部門名です。 – Enthusiast

+0

OKをクリックして、クエリの名前を変更します。 –

+0

問題は部署が数値クエリではなく、むしろ名前フィールドとmaxが文字列データに必要な結果を与えない可能性があります – Enthusiast

関連する問題