![]() |
Datenbank: Access • Version: 2003 • Zugriff über: SQL / Delphi
Access SQL select mit berechneten Feldern?
Hallo, ich stehe momentan auf den Schlauch, ich möchte von den zwei Datensätzen die Differenz angezeigt bekommen, also 20 minus 15 = Menge 5.
Diese Abfrage funktioniert und zeigt die Datensätze: SELECT ABFPosMenge as Menge, ABFPosArtNr as Nummer, ABFPosName1 as bezeichnung FROM ABFPos INNER JOIN ABFDok ON ABFPos.ABFPosAuftragID = ABFDok.ABFDocID where ABFDok.ABFDocAuftragnr ='A021159' and ABFPosType = 0 and ABFPosArtOption <> 15; Ergebnis: Menge Nummer bezeichnung Currency Text[22] Text[44] ----------------------------------------------------------------------------------- 20 1062990 Testartikel1 15 1062990 Testartikel1 Wie bekomme ich das hin, dass mir als Ergebnis 5 angezeigt wird. Bin Neuling, vielleicht hilft mir jemand. Vielen herzlichen Dank. Harry |
AW: Access SQL select mit berechneten Feldern?
Mit
Code:
würdest du die Summe bekommen, wenn du anhand einer weiteren Bedingung oder Feldes entscheiden kannst was von anderen abgezogen wird ginge dann:
SUM(ABFPosMenge) as ABFPosMenge
SQL-Code:
Bei beidem brauchst du natürlich unten noch ein
SUM(CASE WHEN IRGENDWAS THEN ABFPosMenge ELSE -1*ABFPosMenge) as ABFPosMenge
SQL-Code:
GROUP BY ABFPosArtNr, ABFPosName1
|
AW: Access SQL select mit berechneten Feldern?
Jupp, wenn er bei dem zweiten Wert das Vorzeichen ändert, dann kann er SUM benutzen.
Oder eine passende Aggregate-Funktion bauen. Oder eben die beiden Werte in einen Datensatz bekommen und da selber rechnen. "-" , "abs" und Co. Oder halt so ein Zeug wie die Standardabweichung benutzen. stddev_pop(field)*2 von ein bis zwei Records müsste doch die Differenz ergeben :stupid: |
AW: Access SQL select mit berechneten Feldern?
Hallo, danke euch!
Die Summe habe ich schon mal: SELECT sum(ABFPosMenge) as Menge, ABFPosArtNr as Nummer, ABFPosName1 as bezeichnung FROM ABFPos INNER JOIN ABFDok ON ABFPos.ABFPosAuftragID = ABFDok.ABFDocID where ABFDok.ABFDocAuftragnr ='A021159' and ABFPosType = 0 and ABFPosArtOption <> 15 GROUP BY ABFPosArtNr, ABFPosName1; aber wie ich den kleinsten Wert 15 vom größeren Wert 20 abzeihen soll, damit das Ergebnis 5 erscheint ist mir leider noch nicht klar. Ich habe es schon mit Min und Max versucht, da wirft er mir Fehlermeldungen. Harry |
AW: Access SQL select mit berechneten Feldern?
Es ist egal, wie rum du rechnest, wenn du dir nur das "absolute" Ergebnis ansiehst.
SQL-Code:
Abs(Sum(field))
Abs(20 - 5) = 15 Abs(5 - 20) = 15 |
AW: Access SQL select mit berechneten Feldern?
Es soll ja das Ergebnis 5 rauskommen.
20-15 = 5 20 1062990 Testartikel1 15 1062990 Testartikel1 |
AW: Access SQL select mit berechneten Feldern?
Formel umstellen oder Parameter tauschen ist nicht verboten.
ändert doch nichts an dem Vorgehen. :stupid: |
AW: Access SQL select mit berechneten Feldern?
Wenn es immer zwei Werte gibt, einen groß einen klein, dann sollte es doch mit min und max gehen:
SQL-Code:
SELECT MAX(ABFPosMenge)-MIN(ABFPosMenge) as Menge, ABFPosArtNr as Nummer, ABFPosName1 as bezeichnung
FROM ABFPos INNER JOIN ABFDok ON ABFPos.ABFPosAuftragID = ABFDok.ABFDocID where ABFDok.ABFDocAuftragnr ='A021159' and ABFPosType = 0 and ABFPosArtOption <> 15 GROUP BY ABFPosArtNr, ABFPosName1; |
AW: Access SQL select mit berechneten Feldern?
Ja Jumpy, vielen Dank! Das wars.
Mit Min/Max hatte ich es schon probiert, aber offensichtlich falsch. Nochmals Danke. LG Harry |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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