在包含所有额外信息的表格中显示唯一ID

时间:2016-03-16 15:50:38

标签: sql ms-access

SELECT Personeelsnummer, Achternaam, Voornaam, Departement, SubDep, SubSubDep, FTE, RedenUitDienst, Anciennitëitsdatum, GeldigOp, Schrapping, Ancienniteit, Positie, Nieveau, OmschrijfingStatuut
FROM tbl_Worker
GROUP BY Personeelsnummer

OR

SELECT (DISTINCT Personeelsnummer), Achternaam, Voornaam, Departement, SubDep, SubSubDep, FTE, RedenUitDienst, Anciennitëitsdatum, GeldigOp, Schrapping, Ancienniteit, Positie, Nieveau, OmschrijfingStatuut
FROM tbl_Worker
GROUP BY Personeelsnummer

我有一张包含49000条记录的工作人员表,其中包括一个'快照'从每个月的所有工人。但我需要的是一张公司所有员工的桌子。只有一次。所以我试图调查上面的查询节目,但他们没有工作。 所以我需要的是一个查询,显示所有独特的Personeelsnummers'以及有关这些人的所有额外信息。

这是什么工作:SELECT DISTINCT Personeelsnummer FROM tbl_Worker ==>这给了我一张1200条记录的表格,但只有数字,但我需要所有额外的信息。

2 个答案:

答案 0 :(得分:0)

使用pants来获取第一个或最后一个记录,而不是GROUP BY

WHERE

您可以使用SELECT w.* FROM tbl_Worker as w WHERE monthcol = (SELECT MAX(w2.monthcol) FROM tbl_Worker as w2 WHERE w2.Personeelsnummer = w.Personeelsnummer ); 获取第一个月的记录。我的荷兰语有点弱,所以我不知道哪一列指的是记录的日期。

为了提高性能,您需要MIN()上的索引:

tbl_Worker(Personeelsnummer, GeldigOp)

编辑:

或者你可以使用create index idx_tbl_worker_Personeelsnummer_GeldigOp on tbl_Worker(Personeelsnummer, GeldigOp);

来完成
JOIN

答案 1 :(得分:-1)

您正在寻找一个小组:

select *
from table
group by field1

偶尔可以使用明确的声明编写:

select distinct on field1 *
from table

this主题中所示。