Hallo zusammen
In einer Abfrage habe ich Daten ähnlich wie dieser Struktur:
ArtikelID | Preis | Anzahl | PreisTotal | weitererWert |
1 | 100 | 1 | 100 | 3 |
1 | 100 | 1 | 100 | 15 |
1 | 100 | 1 | 100 | 7 |
2 | 200 | 2 | 400 | 4 |
2 | 200 | 2 | 400 | 6 |
2 | 200 | 2 | 400 | 3 |
2 | 200 | 2 | 400 | 2 |
2 | 200 | 2 | 400 | 18 |
6 | 500 | 4 | 2000 | 1 |
6 | 500 | 4 | 2000 | 9 |
6 | 500 | 4 | 2000 | 25 |
6 | 500 | 4 | 2000 | 4 |
6 | 500 | 4 | 2000 | 94 |
Feld "Preis" ist ein aufgrund einer WENN Formel ermittelter Betrag: Entweder wird das Feld "Preis" aus einer Preisliste genommen, oder ein vom Benutzer eingegebener Wert (Im Formular kann der Benutzer den vorgeschlagenen Preis übersteuern). Weiter wird der Betrag dann mit einem Fremdwährungskurs und Margenkurs multipliziert.
Der Wert PreisTotal ist dann:
Preistotal:[Preis]*[Anzahl]In einer normalen Abfrage funktioniert das problemlos. Was ich nun machen sollte, wäre ein Gruppierung über diese Daten. Schlussendlich benötigte ich die Summen des Felds
weitererWert:
ArtikelID | Preis | Anzahl | PreisTotal | weitererWert |
Gruppierung | Gruppierung | Gruppierung | Gruppierung | Summe |
|
1 | 100 | 1 | 100 | 25 |
2 | 200 | 2 | 400 | 33 |
6 | 500 | 4 | 2000 | 133 |
Das klappt aber nicht, ich erhalte immer einen "Parameterwert eingeben" für das Feld
Preis.
Warum ist das so? Ich kann dann (scheinbar) einen beliebigen Wert als Parameter eingeben, und die Werte werden mir korrekt angezeigt.
Vielen Dank für eure Hilfe,
Micharius
Hallo,
wie wäre es, wenn Du die Abfrage mit der Gruppierung zeigst (SQL) ?
Wie sonst soll man da helefen können ?
Formularbezüge in Abfragen haben ihre Besonderheiten: Nichtfunktionieren in bestimmten Konstellationen.
Hallo zusammen
Hier gerne der SQL Code dieser Abfrage:
SELECT tblZuordnDossierArtikel.ZuoDosArtDosIDRef, IIf([ZuoDosArtPreisCHFbrut] Is Null,[SoftwPreisCHF],[ZuoDosArtPreisCHFbrut]) AS ExportpreisEinzeln, tblZuordnDossierArtikel.ZuoDosArtAnzahl, [ZuoDosArtAnzahl]*[ExportpreisEinzeln] AS ExportpreisGesamt, Sum(([ArtMapPL]+[ArtMapSpezi])*[DosStundensatz]) AS DienstlPreisTotal
FROM (tblSWHersteller INNER JOIN (tblSoftware INNER JOIN tblArtikelAufwandMapping ON tblSoftware.SoftwID = tblArtikelAufwandMapping.ArtMapSoftwIDRef) ON tblSWHersteller.SWHerstID = tblSoftware.SoftwSWHerstIDRef) INNER JOIN (tblDossiers INNER JOIN tblZuordnDossierArtikel ON tblDossiers.DosID = tblZuordnDossierArtikel.ZuoDosArtDosIDRef) ON tblSoftware.SoftwID = tblZuordnDossierArtikel.ZuoDosArtSoftwIDRef
GROUP BY tblZuordnDossierArtikel.ZuoDosArtDosIDRef, IIf([ZuoDosArtPreisCHFbrut] Is Null,[SoftwPreisCHF],[ZuoDosArtPreisCHFbrut]), tblZuordnDossierArtikel.ZuoDosArtAnzahl, [ZuoDosArtAnzahl]*[ExportpreisEinzeln];
Es scheint irgendein Problem mit der WENN Abfrage im Feld ExportPreisEinzeln zu sein...
Vielen Dank im Voraus, dass ihr einen Blick darauf werft.
Grüsse
Micharius
Ob ich die Feldnamen den richtigen Tabellennamen zugeordnet habe, weiß ich nicht. Ebenso bin ich skeptisch, dass die Summe richtig berechnet wird. Auf jedenfall musst Du von den vielen Gruppierungen weg.
Probiere einmalSELECT zda.ZuoDosArtDosIDRef,
First(Nz(zda.ZuoDosArtPreisCHFbrut,
s.SoftwPreisCHF)) AS ExportpreisEinzeln,
First(zda.ZuoDosArtAnzahl) AS ZuoDosArtAnzahl,
First(zda.ZuoDosArtAnzahl
* Nz(zda.ZuoDosArtPreisCHFbrut,
s.SoftwPreisCHF)) AS ExportpreisGesamt,
Sum((aam.ArtMapPL + aam.ArtMapSpezi)
* d.DosStundensatz) AS DienstlPreisTotal
FROM (tblSWHersteller h
INNER JOIN (tblSoftware s
INNER JOIN tblArtikelAufwandMapping aam
ON s.SoftwID = aam.ArtMapSoftwIDRef)
ON h.SWHerstID = s.SoftwSWHerstIDRef)
INNER JOIN (tblDossiers d
INNER JOIN tblZuordnDossierArtikel zda
ON d.DosID = zda.ZuoDosArtDosIDRef)
ON s.SoftwID = zda.ZuoDosArtSoftwIDRef
GROUP BY zda.ZuoDosArtDosIDRef;
PS: vermutlich ist die Herstellertabelle gar nicht notwendig.
PPS: wenn's nicht funktioniert, am besten ein kleines Beispiel mit wenigen anonymen Spieldaten und der bisher funktionierenden Abfrage als Anhang hochladen.
Hallo Lachtaube
Der SQL Code funktioniert nicht schlecht, mit ein paar Anpassungen bin ich fast am Ziel angelangt. Leider nur fast. Komme gerne auf das Angebot mit dem Beispiel zurück, dafür benötige ich aber etwas Zeit...
Bis bald,
Micharius
...nochmals drüber geschlafen, und heute nochmals angeschaut. Nun klappt's!
Herzlichen Dank, Lachtaube, für den Lösungsansatz!
@Alle - scheck ich es nun gar nicht mehr? Wo kann ich ein Thema auf "gelöst" stellen?