Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Unzulässiges Einklammern des Namens Select

Frage Microsoft Microsoft Office

Mitglied: stevensqwe

stevensqwe (Level 1) - Jetzt verbinden

31.03.2010, aktualisiert 05:16 Uhr, 9277 Aufrufe, 5 Kommentare

Hilfe!!!
Irgendwie spinnt eine Abfrage, ACCESS mag sie gar nicht, weiss aber nicht wieso...
Wisst Ihr Rat?
Schönen Gruß,
stevens

Ominöse Dinge passieren: Ich speichere folgende Abfrage ab:

SELECT A.*
FROM LyoTable AS A, (SELECT [Lot Number], Max([Start Time] +[Start Date]) AS StartDateTime
FROM Lyotable
GROUP BY [Lot Number]) AS B
WHERE (A.[Lot Number]=B.[Lot Number] AND A.[Start Date]+ A.[Start Time] = B.StartDateTime);

und ACCESS ersetzt einfach die Klammer um (SELECT.... ] ) mit [SELECT.... ] ]. wie folgt:

SELECT A.*
FROM LyoTable AS A, [SELECT [Lot Number], Max([Start Time] +[Start Date]) AS StartDateTime
FROM Lyotable
GROUP BY [Lot Number] ]. AS B
WHERE (A.[Lot Number]=B.[Lot Number] AND A.[Start Date]+ A.[Start Time] = B.StartDateTime);

und wirft dann beim Versuch, diese Abfrage erneut zu öffnen, den Fehler: "Unzulässiges Einklammern des Namens 'Select [Lot Number'."

Könnt Ihr Euch darauf einen Reim machen? ACCESS will dann auch gar nicht mehr diese Abfrage öffnen...
Mitglied: trommelschlumpf
31.03.2010 um 09:42 Uhr
Die erste Antwort war etwas... unausgereift...

So, jetzt:

Abgesehen von dem SELECT, was hier wirklich zu viel ist passen da noch ein paar andere Sachen nicht.

Mal das offensichtliche:

Zitat von stevensqwe:
>... FROM LyoTable AS A, (SELECT [Lot Number], Max([Start Time] +[Start Date]) AS StartDateTime

Mit dem Teil willst du anscheinend 2 Felder zu einem verbinden. Das geht nicht mit "+" sondern mit "&".

Was soll die Abfrage eigentlich rausschmeissen? Ich hab so den Eindruck du versuchst mehrere Abfragen in eine einzige zu packen.
Bitte warten ..
Mitglied: SlainteMhath
31.03.2010 um 09:57 Uhr
Moin,

der SELECT ist an der Stelle schlichtweg falsch.. was genau willst du denn mit damit erreichen?

lg,
Slainte
Bitte warten ..
Mitglied: Biber
31.03.2010 um 14:17 Uhr
Moin stevensqwe,

jepp, da hast du den Redmonder PraktikantInnen wieder voll in den Schritt gefasst.

der Parser (=Syntaxprüfer und Übersetzer in Richtung Datenbankengine) der JET-Datenbank hat ein Problem damit, eine Query richtig mit einer Subquery zu verknibbeln, wenn denn die SubQuery selbst Feldnamen in eckigen Klammern enthält.

Konkreter:
01.
SELECT A.* 
02.
FROM LyoTable AS A,  
03.
   (SELECT [Lot Number], Max([Start Time] +[Start Date]) AS StartDateTime   
04.
          FROM Lyotable 
05.
        GROUP BY [Lot Number])  
06.
         AS B 
07.
     WHERE  
08.
         (A.[Lot Number]=B.[Lot Number]  
09.
          AND  
10.
      A.[Start Date]+ A.[Start Time] = B.StartDateTime);
--> was hier stört, sind die ganzen "[" und "]"s in der Subquery, die letzten Endes unter dem Alias B angesprochen wird.
Und die sind nur nötig, weil irgendeine Schafsnase unbedingt meinte, Datenbankfeldnamen mit "Leerzeichen im Namen" wie z.B. "Start Time" wären total angesagt in der Szene.
(Ich sprach kurz in dem Vorgängerthread darüber, glaube ich.)

Abhilfe:

Meiner unmaßgeblichen Meinung nach wäre das Problem ohne "Feldnamen in eckigen Brackets" gar nicht aufgetreten. und wenn diese wiederum nur nötig sind wegen dieser Leerzeichen... dann zwei oder drei Lösungsansätze:
  • statt auf Tabellen lieber auf Eins-Zu-Eins-Views (=heißen in Access auch "Abfragen") gehen, in denen die Feldnamen keine Leerzeichen mehr haben. Also "StartDate" statt "Start date"; "Lotnumber" statt "Lot Number" heißen
  • Oder aber die Subquery auslagern in eine eigenständige Query, i.e das "SELECT [Lot Number] as LotNumber, Max([Start Time] +[Start Date]) AS StartDateTime FROM Lyotable GROUP BY [Lot Number] " in ein neues Abfrage-SQL-Fenster copy&pasten, Abfrage speichern als "LyoTableGroupedbyDateTime" und in der Query oben diesen Namen einsetzen
  • oder aber tabula rasa machen und diese mistigen Leerzeichen endlich mal in den Tabellen resp LyoTable selbst rauswerfen (Felder umbenennen... natürlich auch in evtl Applikationen, Queries etc.)

Grüße
Biber
Bitte warten ..
Mitglied: stevensqwe
31.03.2010 um 16:03 Uhr
Danke Euch für die Hilfe!
Wenn das ein Parser Problem ist, kann ich wenigstens nachvollziehen, was ACCESS da im Hintergrund leistet bzw. nicht leistet...
und am sinnvollsten, die Leerzeichen einfach wegzulassen, hätte nicht gedacht, dass das den Parser durcheinander bringen könnte.
Danke und Gruß,
stevens
Bitte warten ..
Mitglied: Biber
31.03.2010 um 16:16 Uhr
Moin stevensqwe,

hätte nicht gedacht, dass das den Parser durcheinander bringen könnte.
Na ja, ist ja kein Parser, der von Profis zusammengestoppelt wurde....
Da kannst du schon mal ein Auge zudrücken.

Wir können doch froh sein, dass überhaupt noch engagierte Unternehmen jungen Leuten, die sonst chancenlos auf dem ersten bis dritten Arbeitsmarkt wären, einen Ausbildungsplatz resp. eine Spielwiese bereitstellen.

Obwohl.... bei manchen Redmondern Programmen denk ich mir auch: Hey, eine neue Halfpipe oder ein Bolzplatz hätte den Kidz genauso viel Freude gemacht.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell select-string -pattern (2)

Frage von LianenSchwinger zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: Select-String erzeugt nicht das gewünschte Ergebnis (7)

Frage von MuHMuH zum Thema Batch & Shell ...

Datenbanken
Mit sql eine Zeile einfügen, select und feste Werte (9)

Frage von helmuthelmut2000 zum Thema Datenbanken ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (19)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (12)

Frage von departure69 zum Thema Windows Server ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...