AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken MSAccess SQL Update Statement verkürzen?
Thema durchsuchen
Ansicht
Themen-Optionen

MSAccess SQL Update Statement verkürzen?

Ein Thema von HCB · begonnen am 25. Mai 2021 · letzter Beitrag vom 27. Mai 2021
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#1

AW: MSAccess SQL Update Statement verkürzen?

  Alt 27. Mai 2021, 08:37
EINE Frage hätte ich noch:
Ich möchte aus einer Lieferanten Tabelle den günstigsten EK Preis für einen Artikel auswählen und diesen als EKPreis in der Artikel Tabelle speichern, also updaten.
Den günstigen Lieferantenpreis auszuwählen hab ich schon:

SELECT Min(A.ArtLiefEKPreis) As Preis
From ArtLief As A
Group By A.ArtLiefArtNr;

Wie aber kann ich aber ein Update des EKpreis der Artikeltabelle machen? Funktioniert das mit join und Access?
Hat jemand einen Lösungsvorschlag? Das wäre toll.

LG Harry
AUf die Gefahr, dass das mit Access wieder nicht geht und ohne die genauen Feldnamen zu kennen, als Subselect:

SQL-Code:
Update Artikel A
Set A.EKPREIS=
(SELECT Min(ArtLiefEKPreis) From ArtLief Where ArtLiefArtNr=A.ArtNr)
Du hast dann auch die Möglichkeit, je nach DB, das MIN z.B. durch AVG zu ersetzen für den Durschnittspreis o.ä.
Ralph
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
223 Beiträge
 
Delphi 12 Athens
 
#2

AW: MSAccess SQL Update Statement verkürzen?

  Alt 27. Mai 2021, 09:16
@jumpy
Danke für Deine Unterstützung! Die Feldnamen stimmen so.

Update Artikel A
Set A.EKPREIS=
(SELECT Min(ArtLiefEKPreis) From ArtLief Where ArtLiefArtNr=A.ArtNr)

Leider wirft es mir beim Ausführen folgenden Fehler raus:
Statement #1:
Operation muss eine aktualisierbare Abfrage verwenden.

Ich bin neu auf dem SQL Sektor, bin deshalb etwas überfordert.

LG Harry
  Mit Zitat antworten Zitat
HCB

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

AW: MSAccess SQL Update Statement verkürzen?

  Alt 27. Mai 2021, 13:28
Ok an alle, so hab ich das gelöst (wenn mal jemand das geleiche Problem hat):

//temp Tabelle erstellen
CREATE TABLE AATest (
ArtNr TEXT(22) NOT NULL,
EKMin currency
);
//mit der Abfrage die temp Tabelle füllen
INSERT INTO AATest (ArtNr, EKMin)
SELECT ArtLiefArtNr, Min(ArtLiefEKPreis) From ArtLief
Group By ArtLiefArtNr;
// Das Update durchführen
UPDATE sArtikel
INNER JOIN AATest ON sArtikel.ArtNr = AATest.ArtNr
SET sArtikel.ArtEKQuer = AATest.EKMin;
// Temp Tabelle wieder löschen
Drop Table AATest;

Danke für Eure Hilfestellung.

LG Harry
  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 20:05 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