AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQL Query um ein Feld erweitern (inner join)
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Query um ein Feld erweitern (inner join)

Ein Thema von HCB · begonnen am 3. Feb 2025 · letzter Beitrag vom 4. Feb 2025
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: SQL Query um ein Feld erweitern (inner join)

  Alt 3. Feb 2025, 19:22
Bitte beschreibe mal etwas genauer, was Du vorhast.

Wenn ich das zur Zeit richtig interpretiere, möchtest Du aus der Tabelle ArtLief alle Sätze, zu denen es kein Gegenstück in der externen Tabelle ekpreise gibt (AND extern.Artikelnummer IS NULL). Damit dürfte jede Berechnung mit extern.brutto und extern.netto scheitern.

Bitte ersetze beim SELECT * den * durch die tatsächlich benötigten Spalten der externen Tabelle. Die macht das Verstehen der externen Daten für externe Helfer einfacher

SQL-Code:
    IIF(ArtLief.ArtLiefEKPreis = 0, 0, extern.nettopreis - ArtLief.ArtLiefEKPreis) AS DiffEUR,
    IIF(DiffEUR = 0, 0, DiffEUR * 100 / ArtLief.ArtLiefEKPreis) AS prozent,
Funktioniert das? Auf eine mit AS benannte Spalte dann später zugreifen?

Zeig' bitte mal Deine Versuche, in denen Du versucht hast die Tabelle sArtikel einzubinden. Hast Du "einfach nur" kein Ergebnis erhalten oder eine oder mehrere Fehlermeldungen? Wenn Fehlermeldungen, welche?

Momentan sehe ich keinen ernsthaften Grund, warum es nicht funktionieren sollte, außer, dass ich mit der korrekten Syntax vom Access-SQL absolut nicht vertraut bin.

Ein Versuch:
SQL-Code:
SELECT
    ArtLief.ArtLiefArtnr,
    ArtLief.ArtLiefBestellNr,
    ArtLief.ArtLiefEKPreis,
    ArtLief.ArtEKDatum,
    sArtikel.ArtZusInfo4,
    -- das Folgende erscheint mir (wegen extern.Artikelnummer IS NULL) sinnfrei, da die Werte immer = Null sind
    extern.brutto,
    extern.nettopreis,
    IIF(ArtLief.ArtLiefEKPreis = 0, 0, extern.nettopreis - ArtLief.ArtLiefEKPreis) AS DiffEUR,
    IIF(extern.brutto = 0, 0, (extern.brutto - extern.nettopreis) * 100 / extern.brutto) AS Rabatt,
    IIF(DiffEUR = 0, 0, DiffEUR * 100 / ArtLief.ArtLiefEKPreis) AS prozent -- hier bin ich fast sicher, dass das nicht geht
FROM
(
    ArtLief
    LEFT JOIN
    ( SELECT
          Artikelnummer,
          Brutto,
          Netto
        FROM ekpreise
        IN 'E:\Preisdateien\K000217_p.mdb'
    ) AS extern ON ArtLief.ArtLiefBestellNr = extern.Artikelnummer
)
INNER JOIN sArtikel ON ArtLief.ArtLiefArtNr = sArtikel.ArtNr
WHERE
    ArtLief.ArtLiefLiefNr = 'K000217'
    AND extern.Artikelnummer IS NULL

Geändert von Delphi.Narium ( 4. Feb 2025 um 14:06 Uhr) Grund: Schreibfehler
  Mit Zitat antworten Zitat
 


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 23:16 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