![]() |
AW: Materialbestand berechnen
Jetzt versuche ich die Materialnummer einer Lieferanten-Nr aus einer 3. Tabelle zu zuordnen. in der Tabelle 'Material-Stamm' gibt es die Felder 'Material-Stamm.Mat-Nr' und
'Material-Stamm.Lieferanten-Nr'. Meine Erweiterung der Select-Anweisung wäre folgende:
Code:
Bekomme jetzt den Fehler: Fehler bei der Authentifizierung.
SELECT Materialrollen.Rollennummer, Materialrollen.[Mat-Nr], SUM(Materialrollen.[Arb-Breite] * Materialrollen.lfm) as quadratmeter, [Material-Stamm].[Lieferanten-Nr]
FROM Materialrollen LEFT JOIN Rollenlager ON (Materialrollen.Rollennummer = Rollenlager.Rollennummer) LEFT JOIN [Material-Stamm] ON ([Material-Stamm].[Mat-Nr] = Materialrollen.[Mat-Nr]) GROUP BY Materialrollen.[Mat-Nr], Materialrollen.Rollennummer Habe ich jetzt die eckigen Klammern fasch, oder die 2.-te JOIN-Anweisung ist hier falsch. Gruß, Luckner |
AW: Materialbestand berechnen
Wenn Du Aggregatfunktionen wie SUM benutzt, gehören alle Nicht-Aggregat-Felder der Ergebnismenge ins GROUP BY, also auch [Material-Stamm].[Lieferanten-Nr].
|
AW: Materialbestand berechnen
Sorry, mein Fehler. Habe den Connections String vergessen einzugeben
Mit
Code:
bekomme ich jetzt einen Syntaxfehler (fehlender Operator zwischen '(Materialrollen.Rollennummer = Rollenlager.Rollennummer)
SELECT Materialrollen.Rollennummer, Materialrollen.[Mat-Nr], SUM(Materialrollen.[Arb-Breite] * Materialrollen.lfm) as quadratmeter, [Material-Stamm].[Lieferanten-Nr]
FROM Materialrollen LEFT JOIN Rollenlager ON (Materialrollen.Rollennummer = Rollenlager.Rollennummer) LEFT JOIN [Material-Stamm] ON ([Material-Stamm].[Mat-Nr] = Materialrollen.[Mat-Nr]) GROUP BY Materialrollen.[Mat-Nr], Materialrollen.Rollennummer, [Material-Stamm].[Lieferanten-Nr] LEFT JOIN [Material-Stamm] ON ([Material-Stamm].[Mat-Nr] = Materialrollen.[Mat-Nr])' Luckner |
AW: Materialbestand berechnen
Sieht eigentlich richtig aus, aber derda sagt was anderes:
![]() Wenn ich's halbwegs recht überblicke, könnte dabei sowas rauskommen:
SQL-Code:
MS-Access <-> SQL-Standard: Zwei fremde Welten treffen aufeinander ;-)
SELECT
Materialrollen.Rollennummer, Materialrollen.[Mat-Nr], SUM(Materialrollen.[Arb-Breite] * Materialrollen.lfm) as quadratmeter, [Material-Stamm].[Lieferanten-Nr] FROM ( Materialrollen LEFT JOIN Rollenlager ON (Materialrollen.Rollennummer = Rollenlager.Rollennummer) ) LEFT JOIN [Material-Stamm] ON ([Material-Stamm].[Mat-Nr] = Materialrollen.[Mat-Nr]) GROUP BY Materialrollen.[Mat-Nr], Materialrollen.Rollennummer, [Material-Stamm].[Lieferanten-Nr] Es ist immer wieder für eine Überraschung gut :-( |
AW: Materialbestand berechnen
Alles weglassen, was überflüssig ist und Fehler eingrenzen.
Die Klammern in "join.. on (..) " können sowieso weg. (Außer vielleicht bei Access ..:roll:) Alle Felder in Select Clause raus, ersetzten durch 1 oder so. Passend dazu Group By raus. usw. Jeweils ausprobieren, wie sich die Fehlermeldung ändert. dann: Die eckigen Klammern sind k... ein Spaß! Zur Lesbarkeit wenigstens die Tabellennamen mit Alias ersetzen, ab da Aliase verwenden, wo möglich. Du verwendest "sogar" Mischbetrieb, mit und ohne Klammern. Dabei können doofe Sachen passieren. Eine Tabelle, die mit Klammerung erzeugt wurde, aber eigentlich, dank brauchbarer Schreibweise auch ohne funktionieren würde, funktioniert in manchen Systemen dann nur in der exakten Klammerschreibweise. Großzügige Handhabung von Groß- und Kleinschreibweise gibt es dann nicht mehr. Folge: Feld/ Tabelle nicht erkannt, Abfrage Parser macht die Grätsche. Passende Fehlermeldung Glückssache. Auch hier gilt: Keine Ahnung, was Access dazu sagt. Auch wenn es hier zu spät ist. Meine dringende Empfehlung: ANSI Zeichensatz (nur Buchstaben, u.U. Zahlen) ohne Leerzeichen für Datenbankobjekte. Das spart viel Ärger und bringt viel Übersichtlichkeit. OT:Was ich auch nicht verstehe, ist dann der Kontrast zwischen schicken Umlauten und Sinn entstellenenden Abkürzungen, nur um z.B. 4 Buchstaben zu sparen. Ebenso Fremdsprach Mischmash. |
AW: Materialbestand berechnen
Hallo jobo,
die Tabellennamen sind nicht auf meinem Mist gewachsen. Ich habe sowieso keine Ahnung von Access. Es ist eine alte, aber noch funktionsfähige, Datenbank. Ich versuche nur einige Auswertungen noch zu bewerkstellingen. Irgendwann soll diese Anwendung auf einem SQL-Server laufen. Werde einige Sachen ausprobieren. Wenn nicht, dann muß ich mich in einem Access-Forum anmelden :? Danke und schönes WE. Luckner |
AW: Materialbestand berechnen
Zitat:
Ach und grad erst gesehen, dbfiddle ist für Foren super, notfalls auch privat, wenn man grad kein XY DB da hat. Es gibt noch einige andere solche Online DB, die alle ihre Vor und Nachteile haben. Oder z.B. auch Online SQL Formatierer, falls das eigene Tool es nicht kann. Ich persönlich finde das sehr hilfreich, formatierte SQL Statements zu lesen, spätestens, wenn sie nicht tun, was sie sollen. Ist ja im Programmcode auch nicht anders. |
AW: Materialbestand berechnen
Zitat:
Bis bald... Thomas |
AW: Materialbestand berechnen
|
AW: Materialbestand berechnen
Zitat:
Bis bald... Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz