Dies wurde behoben. Die Anweisung befand sich in einem anderen Teil der gespeicherten Prozedur.SQL - Top 1 mit der Reihenfolge auswählen?
Die gespeicherte Prozedur Ich schreibe mir nicht erlauben, dies zu tun:
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
gibt mir diese Fehlermeldung:
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.
Was mache ich falsch?
[Bearbeiten] Es gibt keine Gruppe von Anweisung hier. SQL2005.
hier etwas mehr Kontext:
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
Könnten Sie die Tabellendefinitionen, die Inhalte von @Parent und @Child veröffentlichen, und die Datenbanksoftware Sie – Andomar
So mit sind es keine GROUP BY-Klausel ist in dein st Atmung? Bist du dir da sicher? – spender
Ich stelle fest, dass Sie sowohl @dtTopDate als auch @dtLatestDate haben. Ist das beabsichtigt? –