online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon kromgi vom 24.05.2019, 11:47 Options

Kann ich bei SQL am Encde einer Spalte die Werte der Spalte summieren lassen?

Hallo Leute!
ich habe eine ACCESS-Datenbank und mir mit SQL eine Abfrage schwer, schwer erarbeitet, weil ich eigentlich davon garnichts verstehe. Aber soweit klappt das schon.

Nun aber folgendes.
1. Wie erzeuge ich in SQL eine Summe am unteren Ende einer Spalte?

2. Wie erzeuge ich eine sogen. Zwischensumme am unteren Ende einer Spalte, z.B. nach "marke" sortiert? Oder am Ende der Tabelle eine Zusammenfassung, die so aussehen könnte:
Spalte 1 > alle "marken" und daneben die Summe aus der Tabelle wie oben beschrieben?

Vielen Dank für eure professionelle Hilfe!

kromgi


Antwort schreiben

Antwort 1 von Woo vom 01.06.2019, 09:03 Options

Hi,

so wir ich das jetzt verstanden habe, hast du eine Spalte mit dem Markennamen, und du möchtest herausfinden, wieviele Einträge von der jeweiligen Marke vorhanden sind?!

Dann probier mal folgenden SQL Befehl:

SELECT marke, count( * )
FROM tabelle
GROUP BY marke
ORDER BY marke

Antwort 2 von Woo vom 01.06.2019, 09:04 Options

Hi,

wenn ich dein Problem richtig verstanden habe, probier mal folgenden SQL Befehl:

SELECT marke, count( * )
FROM tabelle
GROUP BY marke
ORDER BY marke

Antwort 3 von kromgi vom 01.06.2019, 09:40 Options

@Woo,
vielen Dank für deine Hilfe, aber das ist es nicht, was ich meine.

ich möchte unter der Spalte eine Summe haben, aller Daten in dieser Spalte, um den gesamtlagerbestand Stück und Wertmässig ermitteln zu können. nicht die anzahl der einträge. Oder verstehe ich da was nicht!

kromgi!

Antwort 4 von Woo vom 01.06.2019, 10:46 Options

Hmmm,

dieser eintrag gibt dir dann die Anzahl der Sachen aus.
Z.b. hast du folgende Tabelle:

ID | MARKE | weitere attribute (z.B. Artikel, Preis, etc)
--------------------------------------
1 | marke1 | ...
2 | marke1 | ....
3 | marke2 | ....

der SQL befehl gibt dann folgendes aus:

marke1 2
marke2 1

Am besten wäre es, wenn du paar genaue Informationen gibst, und dann was du genau als Ausgabe haben möchtest.

Antwort 5 von kromgi vom 01.06.2019, 11:19 Options

Hi Woo,

Spalte 1 Marke
Spalte 2 Artikelnummer des Herstellers
Spalte 3 Größe
Spalte 4 Einzel preis
Spalte 5 Bestand
Spalte 6 Preis * Bestand

das ganze ist beliebig erweiterbar mit Größen, Mit Rabatten...
das sind alles denkbare Spalten. das bekomme ich auch alles soweit hin.

ABER in Spalte 6 Preis*Bestand soll dann unter den letzten datensatz eine Summe aller Eintrage genau dieser Spalte.
z.B.:

Adidas - 0815 - M - 49,95€ - 5 Stck. - 249,75€
Adidas - 0816 - L - 19,95€ - 2 Stck - 39,90€

Summe -------------------------- 7 Stck - 289,65€
Hoffentlich verlange ich nichts unmögliches! Danke schon jetzt!
kromgi

Antwort 6 von Woo vom 02.06.2019, 09:31 Options

Hi,

ich glaub, jetzt hab ich dich schon besser verstanden :)

Die Summe des Bestandes:
SELECT  sum(bestand) 
FROM tabelle


Und die Preissumme (Summe von Preis * Bestand):
SELECT sum( bestand * preis )
FROM tabelle


So letzte Spalte (Preis * Bestand) würde man in einer Tabelle sowieso nicht mit abspeichern, da die Daten ja redudant wären, und sich ja auch Bestand und Preis ausrechnen lassen.

So, ich hoffe, nun klappt es, wie du das gerne hättest.

Besten Gruß,
Woo

Antwort 7 von Proggi vom 02.06.2019, 10:39 Options

du kannst das auch zusammenfassen.
SELECT sum(bestand) as anzahl,  sum( bestand * preis ) as gespreis FROM tabelle


oder noch verfeinern mit gruppierungen z.B. nach Marke
SELECT Marke ,sum(bestand) as anzahl,  sum( bestand * preis ) as gespreis FROM tabelle group by marke

Antwort 8 von kromgi vom 02.06.2019, 11:35 Options

Guten Morgen!
vielen dank euch beiden, werde ich gleich heute nachmittag (wenn ich mit dem garten fertig bin, :-(( ) ausprobieren!

schönes wochenende noch

kromgi

Antwort 9 von kromgi vom 12.06.2019, 11:43 Options

Hallo leute!

Habe wenig erfolg damit gehabt, wie Proggi und Woo beschrieben haben. ich bekomme es einfach nicht hin dass eine Summe aller werte in der Spalte preis * bestand gebildert wird. mache ich vielleicht was falsch, ohne es zu wissen bzw. übersehe ich da irgendwas?

Danke nochmals für die tipps

kromgi

Antwort 10 von TomG vom 12.06.2019, 14:08 Options

Hallo,

folgendes geht bei mir ( ist jedoch VFP und nicht Access, sollte aber trotzdem funktionieren ).

SELECT preis*menge as summe, menge as menge, preis FROM tabelle union SELECT sum(preis*menge) as summe, sum(menge) as menge, 0 as preis FROM tabelle

Das Beispiel hat nur 3 Felder, PREIS * MENGE, MENGE und PREIS. Die AS-Klausel vergibt einen neuen Spaltenname. Dieser wird für die UNION-Bedingung benötigt, diese zieht nämlich die gewünschten Summen und die Namen müssen, zumindest bei mir, identisch sein. Wichtig ist, dass es in Access einen UNION gibt!

Ein Schönheitsfehler hat das ganze, zumindest bei mir. Das Ergebnis wird aufsteigend nach der ersten Spalte sortiert, deshalb habe ich PREIS*MENGE ganz vorne, da das Produkt aus beiden wohl immer der größte Wert ist.

Man könnte noch versuchen, eine alternative Sortierung zu bekommen, aber dann sind die Summen wohl nicht mehr unterhalb der Spalten.

Vielleicht klappt´s ja, würde mich über eine Info freuen.
Gruß
Thomas

Ähnliche Themen

Erzeugung von Diagrammen automatisieren
Trudi  21.06.2007 - 95 Hits - 9 Antworten

Excel Nezüge
denniso  06.09.2007 - 18 Hits - 1 Antwort

Berechnung nur wenn Datum in Zelle
spalte  10.02.2008 - 92 Hits - 5 Antworten

sum if-formel problem in excel
maku  18.02.2008 - 58 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026