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条记录的表格,但只有数字,但我需要所有额外的信息。
答案 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主题中所示。