Soll der View denn das Ergebnis der "einwandfrei" funktionierenden Abfrage darstellen?
Dann musst Du Dir noch mal anschauen, wie man ein View definiert (oder ändert)
Was Du in Deinem Alter View Statement machst, ergibt jedenfalls keinen Sinn.
Die Definition eines Views besteht aus nichts weiter* als dem Befehl einen View anzulegen (Create View ) oder zu ändern (Alter View), plus dem eindeutigen Namen des Views (nicht evtl darin enthaltener Tabellen) einem "AS" für den besseren Sprachfluß und dem Rumpf, also dem Select Statement selbst (Das bei Dir ja bereits funktioniert).
Kurz, in Deinem Alter View Befehl ist "Select *," zuviel, zumindest wenn der View nur das funktionierende Statement darstellen soll.
Wenn Du das funktionierende Statement als Teil eines größeren Select Statements verwenden willst, empfiehlt es sich, zunächst das größere Statement lauffähig zu machen - ohne alter view.
Wenn das funktionierende Statement dabei nur ein Subselect darstellen soll, sollte es mit sehr großer Wahrscheinlichkeit per Join in das umkleidende Statement eingeschlossen werden.
Dabei sollten überall Table Aliase verwendet werden, um jede Spalte eindeutig ansprechen zu können.
Und bei der Definition eines Subselects, das in einer übergeordneten Select Clause den Wert einer Spalte liefern soll, sollte außerdem nur eine Spalte ausgegeben werden. (Es sei denn MSSQL kann Dinge, die mir nicht bekannt sind)
* in der einfachsten Form, straight forward