我以为我有,但似乎我错了。SQL最新日期
我有一个查询
select PrestatieCode, Uitvoerdatum, Identificatie, Foutmelding
from bam_Zending_AllInstances as zAll
left outer join bam_Zending_CompletedRelationships as zRel on
zAll.ActivityID = zRel.ActivityID
left outer join bam_Prestatie_AllInstances as pAll on
zRel.ReferenceData = pAll.ActivityID
where zAll.Zender = 'BL15'
and ReferenceType = 'Activity'
and Zendingnummer = '632'
这说明PrestatieCodes的列表,也复制。 现在我只需要一个没有重复的PretatieCodes列表,它应该选择最新的日期。 datecolumn = Uitvoerdatum。
我想我会尝试这样的:
select max(Uitvoerdatum), PrestatieCode
from bam_Zending_AllInstances as zAll
left outer join bam_Zending_CompletedRelationships as zRel on
zAll.ActivityID = zRel.ActivityID
left outer join bam_Prestatie_AllInstances as pAll on
zRel.ReferenceData = pAll.ActivityID
where zAll.Zender = 'BL15'
and ReferenceType = 'Activity'
and Zendingnummer = '632'
group by PrestatieCode
这给我我想要的。然而,正如你可以注意到它没有2列“Identificatie”和Foutmelding。如果我添加这些,它给我的错误
Column 'bam_Prestatie_AllInstances.Identificatie' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
所以我猜我的方法是错误的。我需要查看所有列,但只能查看最新的“PrestatieCode”。
我有什么意义吗?
+1:可以使用表别名 - 不太可能滚动屏幕。 – 2009-12-04 16:38:15
感谢您的回复!我决定将不同的查询拆分开来,因为还有更多的参数需要加入。所以我使用了c#和querries的组合来完成这项工作,经过一些测试后,也给出了最好的表现。 – WtFudgE 2009-12-07 11:07:13