Cela a été résolu. L'instruction était dans une autre partie de la procédure stockée.SQL - Sélection du Top 1 avec ordre par?
La procédure stockée J'écris ne me permet pas de le faire:
declare @dtTopDate datetime
select top 1 @dtTopDate = date_build
from database..table
where database..table.parent = @Parent
and database..table.child = @Child
order by date_build desc
me donne cette erreur:
Column "database..table.date_build" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause.
Qu'est-ce que je fais mal?
[Modifier] Il n'y a pas de déclaration de groupe par ici. SQL2005.
est ici un peu plus le contexte:
if @Notify = 0
begin
declare @dtTopDate datetime
select top 1 @dtTopDate = date_build
from database..table
where database..table.parent = @Parent
and database..table.child = @Child
order by date_build desc
insert
into database2..table
(parent, child, notification_date, change_date)
values (@Parent, @Child, @dtTopDate, getdate())
return
end
Pouvez-vous afficher les définitions de table, le contenu de @Parent et @Child, et le logiciel de base de données que vous utilisez – Andomar
donc il n'y a pas clause GROUP BY votre st atement? Êtes-vous sûr de cela? – spender
Je remarque que vous avez à la fois @dtTopDate et @dtLatestDate. Est-ce intentionnel? –