Verknüpfte Tabellen MS ACCESS auf SQL Server

Jedu30

Neuer Benutzer
Beiträge
3
Hallo,

ich bin dabei eine Desktop Datenbank in eine Server basierte Datenbank umzustellen. Soweit so gut ich haben alle Tabellen mit dem Server verknüpft nur funktionieren nicht alle VBA basierten SQL Abfragen mit den verknüpften Tabellen. Klar muss die Syntax angepasst werden doch leider kann ich bei dieser der folgenden Abfrage den Fehler nicht finden. Gibt es jemand welcher den Fehler entdecken kann ? ich bin ein wenig ratlos oder betriebsblind geworden anbei die Abfrage

SELECT PR_ID, Kopplung, NameVorname, Art, Fach, EULA, Prüfer, Vorsitz, Dekan, Termin, Zeit, Std, Dauer, Klasse, Inklusion, Schulbezeichnung, KolZeit, KolSchulbezeichnung, PR_Art, Terminsort
from (SELECT Prüfung.PR_ID, IIf(Isnull(Prüfung.PR_K_ID,0)=0,'',format(Prüfung.PR_K_ID,'K000'))
AS Kopplung, (iif(isnull(A_Namenszusätze,0)= 0,A_Namenszusätze+' ','')+Anwärter.A_Nachname + ', ' + Anwärter.A_Vorname)
AS NameVorname, iif(PR_Art=0,'',iif(A_Schulart = 'GYMGS',iif(PR_Art = 1,'RG','oRG'),iif(A_Schulart = 'GYMWHRS',iif(PR_Art = 1,'RG','oRG'), iif(PR_Art = 1,'mV','UE'))))
AS Art, iif(PR_Fachkürzel <> 'GENT', PR_Fachkürzel, iif(A_TL_Sopäd = 1, PR_Fachkürzel + '-TL', PR_Fachkürzel))
AS Fach, Prüfung.PR_EULA_Sprachkürzel
AS EULA, (iif(isnull(P.Prüfperson_Namenszusätze,0)=0,P.Prüfperson_Namenszusätze+' ','')+P.Prüfperson_Nachname+', '+P.Prüfperson_Vorname)
AS Prüfer, (iif(isnull(V.Prüfperson_Namenszusätze,0)=0,V.Prüfperson_Namenszusätze+' ','')+V.Prüfperson_Nachname+', '+V.Prüfperson_Vorname)
AS Vorsitz, (iif(isnull(D.Prüfperson_Namenszusätze,0)=0,D.Prüfperson_Namenszusätze+' ','')+D.Prüfperson_Nachname+', '+D.Prüfperson_Vorname)
AS Dekan, IIf(isnull(PR_SonderPrüfungstag,0)=1,format(Prüfung.PR_Prüfungstag,'dd.mm.yy ddd'),format(PR_SonderPrüfungstag,'dd.mm.yy ddd'))
AS Termin, format(Prüfung.PR_Prüfungszeit,'hh:mm')
AS Zeit, Prüfung.PR_Stunde
AS Std, Prüfung.PR_Dauer
AS Dauer, Prüfung.PR_Klasse
AS Klasse, iif(PR_Inklusionsbegleiter=true,' i','')
AS Inklusion, (Schul.SchulOrt+' / '+Schul.SchulName + ' ' + Schul.SchulName2 + ' / '+Schul.Schulstr)
AS Schulbezeichnung, IIf(PR_Art=1 Or A_Schulart='GS' or A_Schulart = 'APrOFTL' or A_Schulart = 'APrOFL' or A_Schulart = 'EUAPL',format(Prüfung.PR_KolZeit,'hh:mm'),' --- ')
AS KolZeit, iif(A_Schulart = 'GYMGS', ' ----- ', iif(PR_Art = 1 or A_Schulart = 'GS' or A_Schulart = 'APrOFTL' or A_Schulart = 'APrOFL' or A_Schulart = 'EUAPL', KolSchul.SchulOrt+' / '+KolSchul.SchulName+' / '+KolSchul.Schulstr, ' ----- '))
AS KolSchulbezeichnung, Prüfung.PR_Art
AS PR_Art, IIf(isnull(PR_SonderPrüfungstag,0)=1,format(Prüfung.PR_Prüfungstag,'yyyy.mm.dd'),format(PR_SonderPrüfungstag,'yyyy.mm.dd'))
AS Terminsort, (A_Nachname+A_Vorname)
AS ANachnameVorname, (P.Prüfperson_Nachname+P.Prüfperson_Vorname)
AS PNachnameVorname, (V.Prüfperson_Nachname+V.Prüfperson_Vorname)
AS VNachnameVorname, (D.Prüfperson_Nachname+D.Prüfperson_Vorname)
AS DNachnameVorname
FROM Prüfung, Anwärter, Prüfperson
AS P, Prüfperson
AS V, Prüfperson
AS D, Schule
AS Schul, Schule
AS KolSchul, Steuer
WHERE A_Schulart = 'GS' and A_Seminarkürzel = 'AS' and A_Kurs = '19' and Steuer_Schulart = A_Schulart and Steuer_Seminarkürzel = A_Seminarkürzel and Steuer_Kurs = A_Kurs and Prüfung.PR_A_ID = Anwärter.A_ID And Prüfung.PR_P_Prüfperson_ID = P.Prüfperson_ID And Prüfung.PR_V_Prüfperson_ID = V.Prüfperson_ID And Prüfung.PR_D_Prüfperson_ID = D.Prüfperson_ID And Prüfung.PR_Schul_ID = Schul.Schul_ID And Prüfung.PR_KolSchul_ID = KolSchul.Schul_ID and Prüfung.PR_Status not like '*D' and (Steuer_Wiederholer_Verlängerer = 0
or (Steuer_Wiederholer_Verlängerer = 1 and (exists(select * from Noten where N_A_ID = A_ID and N_Art = 3 and N_Prüfungsart = 'SL') ) or (PR_Art = 1 and exists(select * from Noten where N_A_ID = A_ID and N_Art = 3 and N_Prüfungsart = 'UPP1')) or (PR_Art = 2 and exists(select * from Noten where N_A_ID = A_ID and N_Art = 3 and N_Prüfungsart = 'UPP2')) or (PR_Art = 3 and exists(select * from Noten where N_A_ID = A_ID and N_Art = 3 and N_Prüfungsart = 'UPP3')))))
ORDER BY ANachnameVorname, PR_Art;

Als Fehlermeldung erhalte ich in Visual Studio
Meldung 156, Ebene 15, Status 1, Zeile 35
Falsche Syntax in der Nähe des ORDER-Schlüsselworts.
Leider kann ich mir keinen reim darauf machen.

VG Jens
 
Werbung:

dabadepdu

Datenbank-Guru
Beiträge
986
Order ist nicht irgendwo als Feldname verwendet.
Vielleicht kann ANachnameVorname nicht zum Sortieren verwendet werden, wenn es nicht im Select ist.
 

Jedu30

Neuer Benutzer
Beiträge
3
Leider bin ich immer noch keinen Schritt weiter auch wenn ich die Order Anweisung weglasse läuft die Abfrage nicht dann kommt Falsche Syntax in der nähe von ;
es ist zum Verzweifeln
 
Werbung:

dabadepdu

Datenbank-Guru
Beiträge
986
"..meint noch"? 2 Fehlermeldungen? Oder die nächste?

Ist das eine Abfrage in einem Programm an dem Du schreibst?
Dann lass das Semikolon weg.

Semikolon verwendet man nur bei Command Line Tools oder in einer SQL IDE.

Und nach der schließenden Klammer kannst Du ohne Gefahr noch ein Alias für das Subselect spendieren.
Statt
..)))))
ORDER BY..
besser

..))))) PS
ORDER BY..

"PS" kann auch anders lauten, ist nur ein Alias, den ich mir ausgedacht habe, aber es braucht offenbar einen.
Lies Dir mal durch, was ein Table Alias oder Sub Select Alias ist und wofür der gut ist.
Es gibt Systeme, die ohne auskommen, wenn die Sterne günstig stehen. Aber es ist gute Praxis, sie immer zu benutzen.
Benutzen= Nicht nur reinschreiben/erzeugen, auch weiter verwenden (in der Select Clause, in der Where Clause, überall)
 
Oben