所以我有一个包含不同元素和日期的表。 它基本上是这样的:
actieElement beginDatum
1 1/01/2010
1 1/01/2010
1 10/01/2010
2 1/02/2010
2 3/02/2010
我现在需要的是每个actieElement的最小日期。 我找到了一个使用简单的GROUP BY语句的解决方案,但这样查询就会失去其范围,你不能再改变任何东西。
如果没有GROUP BY语句,我会为每个actieElement获取多个日期,因为某些日期是相同的。
我想到了类似的东西,但它也不起作用,因为它会使子查询超过1条记录:
SELECT s1.actieElement, s1.begindatum
FROM tblActieElementLink AS s1
WHERE (((s1.actieElement)=(SELECT TOP 1 (s2.actieElement)
FROM tblActieElementLink s2
WHERE s1.actieElement = s2.actieElement
ORDER BY s2.begindatum ASC)));
答案 0 :(得分:1)
试试这个
SELECT s1.actieElement, s1.begindatum
FROM tblActieElementLink AS s1
WHERE s1.begindatum =(SELECT MIN(s2.begindatum)
FROM tblActieElementLink s2
WHERE s1.actieElement = s2.actieElement
);
答案 1 :(得分:0)
SELECT DISTINCT T1.actieElement, T1.beginDatum
FROM tblActieElementLink AS T1
INNER JOIN (
SELECT T2.actieElement,
MIN(T2.beginDatum) AS smallest_beginDatum
FROM tblActieElementLink AS T2
GROUP
BY T2.actieElement
) AS DT1
ON T1.actieElement = DT1.actieElement
AND T1.beginDatum = DT1.smallest_beginDatum;
答案 2 :(得分:-1)
向SELECT中添加DISTINCT子句。