AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Query erweitern?

Ein Thema von HCB · begonnen am 9. Jan 2025 · letzter Beitrag vom 10. Jan 2025
Antwort Antwort
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: SQL Query erweitern?

  Alt 10. Jan 2025, 05:31
Auf den ersten Blick konnte ich keinen Syntaxfehler sehen.
Bist du sicher, dass alle Bezeichner korrekt sind?
Soweit ich erkennen kann, enthalten alle Tabellenfelder als Prefix auch den Tabellennamen (ABFDoc<Feldname>, ABFPos<Feldname>).
Bei der Tabelle ArtMenge fällt mir aber folgendes auf:
  • ArtMenge.ArtBestand hat nur "Art" als Prefix
  • Beim Inner Join steht aber wieder ArtMenge bei den Feldern als Prefix (ArtMenge.ArtMengeNr)
Vielleicht wird in der Tabelle ArtMenge von eurem Standard abgewichen und die verwendest daher die falschen Feldnamen.
Die Fehlermeldung ist dann möglicherweise "nur" ein Folgefehler.

Oder ich übersehe doch einen Syntaxfehler

[EDIT]
Das Problem ist ACCESS. Diese "Datenbank" unterstützt nur ein join. Mehrere gehen nur mit Tricks.
Was für dich passt kannst du dir dann mal selbst ansehen: Bei Google suchenAccess SQL multiple joins
Peter

Geändert von Jasocul (10. Jan 2025 um 05:41 Uhr) Grund: Neue Infos
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
699 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SQL Query erweitern?

  Alt 10. Jan 2025, 08:09
Ich kenne Deine Datenbank (MS Access) nicht weiter, habe nie damit gearbeitet. Probier aber mal der Tabelle ArtMenge einen Alias im JOIN zu geben

SQL-Code:
 INNER JOIN
    ArtMenge AM ON Pos.ABFPosArtNr = AM.ArtMengeNr
Vielleicht ist Access da auch strikter und will diesen...
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
226 Beiträge
 
Delphi 12 Athens
 
#3

AW: SQL Query erweitern?

  Alt 10. Jan 2025, 08:21
Danke für die Hilfe.
Das Feld das hinzugefügt werden soll ist ArtBestand aus der Tabelle ArtMenge.
Hier habe ich wegen der Übsersichtlichkeit ein reduziertes Query was läuft:
Delphi-Quellcode:
SELECT
    Dok.ABFDocAuftragNr,
    Pos.ABFPosArtNr,
    Pos.ABFPosName1,
    Pos.ABFPosDocID,
    M.ArtBestand,
    (SELECT SUM(subPos.ABFPosMenge)
     FROM ABFDok subDok
     INNER JOIN ABFPos subPos ON subDok.ABFDocID = subPos.ABFPosdocID
     WHERE subDok.ABFDocAuftragNr = Dok.ABFDocAuftragNr
       AND subPos.ABFPosArtNr = Pos.ABFPosArtNr
       AND subPos.ABFPosNr <> '') AS geliefert
FROM
    (ABFDok Dok
INNER JOIN
    ABFPos Pos ON Dok.ABFDocAuftragID = Pos.ABFPosDocID)
INNER JOIN
    ArtMenge M ON Pos.ABFPosArtNr = M.ArtMengeNr
WHERE
    Dok.ABFDocOptFertig = False
    AND Dok.ABFDocVisType = 1
    AND Pos.ABFPosEPreis > 0
    AND Pos.ABFPosType IN (0, 7)
    AND Pos.ABFPosNr <> ''
ORDER BY
    Dok.ABFDocAuftragNr;
Hab also das M hinter ArtMenge M ON Pos.ABFPosArtNr = M.ArtMengeNr eingefügt, ohne ging wohl nicht.
Vielen Dank.

LG Harry

Geändert von HCB (10. Jan 2025 um 08:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQL Query erweitern?

  Alt 10. Jan 2025, 08:37
Laut https://stackoverflow.com/questions/...join-statement könnte es möglicherweise so oder ähnlich funktionieren:
SQL-Code:
SELECT
    Dok.ABFDocAuftragNr,
    Pos.ABFPosArtNr,
    Pos.ABFPosName1,
    AM.ArtBestand,
    
    (SELECT SUM(subPos.ABFPosMenge)
     FROM ABFDok subDok
     INNER JOIN ABFPos subPos ON subDok.ABFDocID = subPos.ABFPosdocID
     WHERE subDok.ABFDocAuftragNr = Dok.ABFDocAuftragNr
       AND subPos.ABFPosArtNr = Pos.ABFPosArtNr
       AND subPos.ABFPosNr <> '') AS geliefert

FROM
    (ABFDok Dok
INNER JOIN
    ABFPos Pos ON Dok.ABFDocAuftragID = Pos.ABFPosDocID)
INNER JOIN
    ArtMenge AM ON AM.ArtMengeNr= Pos.ABFPosArtNr

WHERE
    Dok.ABFDocOptFertig = False
    AND Dok.ABFDocVisType = 1
    AND Pos.ABFPosEPreis > 0
    AND Pos.ABFPosType IN (0, 7)
    AND Pos.ABFPosNr <> ''
ORDER BY
    Dok.ABFDocAuftragNr;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
699 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: SQL Query erweitern?

  Alt 10. Jan 2025, 09:43
Ah, es waren die Klammern...

Geändert von MyRealName (10. Jan 2025 um 17:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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