Hallo zusammen,
ich habe eine Abfrage, bei der ich Wert einer Tabelle um Daten einer anderen Tabelle ergänze. Dabei soll auch eine Währungswert aus der zweiten Tabelle hinzugefügt werden.
Allerdings erscheint mir statt des tatsächlichen Wertes hier bei einigen Artikeln nur der Wert 0,00 € .
Woran kann das liegen?
Es speilt auch keine Rolle Welche Funktion ich hier eingebe, es wird immer nur der Wert 0,00 @ zurück gegeben.
Das ist die Abfragestruktur:
Hallo,
bitte genauer erklären.
Wie wird der Wert hinzugefügt.
Um welches Feld der Abfrage geht es?
Möglicherweise stimmt ja auch die 0.00€ wenn das nur bei einigen Artikeln ist.
Die Abfrage scheint mir wegen den Gruppierungen ohnehin fragwürdig zu sein.
Statt des PDF wäre der SQL Text der Abfrage besser zur Beurteilung geeignet.
Hallo Klaus,
es geht um das Feld Nettopreis_effektiv. Hier sind in der Tabelle SAP_Stamm_135 immer die gleichen Werte aufgeführt. Trotzdem erscheint in der Abfrage der Wert 0,00 €, alle anderen Einträge werden korrekt übernommen.
SQL:
SELECT ArtikelNr
,[Artikel-Name]
,Hersteller
,[SAP-Nr]
,[Art-Bez]
,[WG-Name]
,Herstellerteilnenummer
,Max([Nettopreis effektiv]) AS [MaxvonNettopreis effektiv]
,[Lieferant Name]
,Sum(Anzahl) AS SummevonAnzahl
,[Anzahl] * [Nettopreis effektiv] AS Wert_Fehlmenge
FROM tbl_FT_CK_Import
INNER JOIN [tbl_SAP-Stamm_135_komplett] ON tbl_FT_CK_Import.ArtikelNr = [tbl_SAP-Stamm_135_komplett].Lieferantenmaterialnr
GROUP BY ArtikelNr
,[Artikel-Name]
,Hersteller
,[SAP-Nr]
,[Art-Bez]
,[WG-Name]
,Herstellerteilnenummer
,[Lieferant Name]
,[Anzahl] * [Nettopreis effektiv]
,[Löschkennzeichen für Einkaufsdaten]
HAVING [Löschkennzeichen für Einkaufsdaten] = "#"
Hallo,
Zitathier bei einigen Artikeln nur der Wert 0,00 € .
Es gibt also auch Artikel, wo der Wert >0 angezeigt wird?
PS:
Ich habe die Abfrage mal etwas übersichtlicher dargestellt.
Hallo Klaus,
ja, bei einigen Positionen wird der korrekte Wert (>0) angezeigt.
Nur bei einigen Artikeln wird, obwohl in der Tabelle ein anderer Wert steht, der Wert 0.00 € ausgegeben.
Es ist auch bei mindestens einem Eintrag nur ein Wert dieses Artikels in der Tabelle ([tbl_SAP-Stamm_135_komplett).
Zitat von: Sgl am Mai 30, 2025, 11:27:05[Anzahl] * [Nettopreis effektiv]
Dieser Ausdruck kommt mir sowohl in der Liste der Ausgabespalten als auch im GroupBy reichlich fragwürdig vor.
Du berechnest mit
Max([Nettopreis effektiv]) und
Sum(Anzahl) Aggregate aus diesen Werten. Was soll dann das Produkt der Einzelwerte aussagen?
Ob das mit deinem Problem "Wert 0,00 €" zusammenhängt oder nicht, kann ich im Moment nicht sagen. Ausschließen würde ich es nicht.
Ich möchte mit dieser Summe ja den Gesamtwert der Anzahl bestimmen, aber gleichzeitig auch den Einzelwert anzeigen.
Im Feld Nettopreis_effektiv erwarte ich doch zunächst einfach den Wert aus der Quelle, der der Tabelle.
Eigentlich sollte es bei der weitern Verarbeitung der Daten aus einem Feld ja auch nicht zu einer fehlerhaften Anzeige der Daten aus der Abfrage kommen, oder gibt es da ggf. Probleme?
Zitat von: Sgl am Mai 30, 2025, 13:37:04Im Feld Nettopreis_effektiv erwarte ich doch zunächst einfach den Wert aus der Quelle, der der Tabelle.
Das Feld
Nettopreis_effektiv ist aber gar nicht im Ergebnis der Abfrage enthalten. - Da stellt sich die Frage, wo genau dein Problem mit den 0,00€ auftritt.
Du hast
Max([Nettopreis effektiv]) und
[Anzahl] * [Nettopreis effektiv]. Letzteres kann ja durchaus 0,00€ ergeben, wenn Anzahl 0 ist.
Aggregatfunktionen (MIN, MAX, SUM, etc.) sind i.d.R. dazu gedacht einen aggregierten Wert über mehrere Datensätze zu ermitteln. Natürlich funktionieren die auch, wenn es nur einen Datensatz gibt. In deiner Abfrage gibt es aber nur "durch Zufall", nämlich wenn
[Anzahl] * [Nettopreis effektiv] für verschiedene, sonst identische, Datensätze den gleichen Wert ergibt, die Situation das SUM und MAX etwas anderes errechnen, als den reinen Basiswert.
Beispiel:
Du hast 2 Datensätze, alles ist gleich bis auf
DS1: [Anzahl]=4, [Nettopreis effektiv]=25€
DS2: [Anzahl]=5, [Nettopreis effektiv]=20€
In deinem Ergebnis hast du dann nur
eine Zeile mit:
[SummevonAnzahl]=9, [MaxvonNettopreis effektiv]=25€, Wert_Fehlmenge=100€
Wert_Fehlmenge ist nur einmalig 100€, weil darüber gruppiert wird.
Das erscheint halt so ziemlich verdächtig.
Hmm,
also das würde ich ja so verstehen, aber das liegt hier nicht vor. Ich habe auch nur einen Datensatz, mit nur einem Wert.
Und klar kann die Berechnung nicht einen positiven Wert ergeben, wenn einer der Summanden = 0 ist.
Bei den Datensätzen, bei denen der Nettowert hier übergeben wird, werden ja auch die Produkte der Berechnung angezeigt.
Ich frage mich aber, warum der Wert, der aus der Tabelle (aus nur einem Datensatz) vorkommt, im Abfrageregebnis anstatt mit diesem Wert mit 0,00 angezeigt wird.
Ich habe die Gruppierung hier auch mal angepasst, da es bei einem Wert ja auch keine weiter Berechnung braucht.
SELECT tbl_FT_CK_Import.ArtikelNr,
tbl_FT_CK_Import.[Artikel-Name],
tbl_FT_CK_Import.Hersteller,
[tbl_SAP-Stamm_135_komplett].[SAP-Nr],
[tbl_SAP-Stamm_135_komplett].[Art-Bez],
[tbl_SAP-Stamm_135_komplett].[WG-Name],
[tbl_SAP-Stamm_135_komplett].Herstellerteilnenummer,
[tbl_SAP-Stamm_135_komplett].[Nettopreis effektiv],
[tbl_SAP-Stamm_135_komplett].[Lieferant Name],
Sum(tbl_FT_CK_Import.Anzahl) AS SummevonAnzahl, [Anzahl]*[Nettopreis effektiv] AS Wert_Fehlmenge
FROM tbl_FT_CK_Import INNER JOIN [tbl_SAP-Stamm_135_komplett] ON tbl_FT_CK_Import.ArtikelNr = [tbl_SAP-Stamm_135_komplett].Lieferantenmaterialnr
GROUP BY tbl_FT_CK_Import.ArtikelNr,
tbl_FT_CK_Import.[Artikel-Name],
tbl_FT_CK_Import.Hersteller,
[tbl_SAP-Stamm_135_komplett].[SAP-Nr],
[tbl_SAP-Stamm_135_komplett].[Art-Bez],
[tbl_SAP-Stamm_135_komplett].[WG-Name],
[tbl_SAP-Stamm_135_komplett].Herstellerteilnenummer,
[tbl_SAP-Stamm_135_komplett].[Nettopreis effektiv],
[tbl_SAP-Stamm_135_komplett].[Lieferant Name],
[Anzahl]*[Nettopreis effektiv],
[tbl_SAP-Stamm_135_komplett].[Löschkennzeichen für Einkaufsdaten]
HAVING ((([tbl_SAP-Stamm_135_komplett].[Löschkennzeichen für Einkaufsdaten])="#"));
Das zeigt jedoch exakt das gleiche Ergebnis. Der EIntrag im Feld Nettowert effektiv bleibt 0,00 €
Zitat von: Sgl am Mai 30, 2025, 14:46:07Das zeigt jedoch exakt das gleiche Ergebnis. Der EIntrag im Feld Nettowert effektiv bleibt 0,00 €
Ich glaube, das lässt sich per Ferndiagnose vorerst nicht erklären.
Bau doch mal eine Kopie der Abfrage Schritt für Schritt auf.
1.) Erstmal einfach nur
tbl_SAP-Stamm_135_komplett, insbesondere
Nettopreis effektiv, abfragen.
2.) Den Join auf Tabelle tbl_FT_CK_Import hinzufügen.
3.) Nicht-Aggregat-Berechnungen hinzufügen.
4.) Aggregatfunktionen und Gruppierungen hinzufügen.
Nach jedem Schritt kontrollierst du die Ergebnisse, insbesondere für
Nettopreis effektiv.Damit sollte sich die Problemursache zumindest ziemlich eng eingrenzen lassen.
Ja, danke.
Genau das habe ich auch grade gemacht und einen Fehler in den Daten gefunden.
Es musste ja auch an so etwas liegen, ich melde mich, sobald ich das bereinigt und neu aufgebaut habe, aber danke erst einmal.
Beste Grüße
Sven