![]() |
Berechnete Felder aufaddieren
Ich habe folgende SQL Abfrage:
SQL-Code:
Das ergibt folgende Tabelle:
SELECT count(*), sum(product.erloes), product.product, product.ver
FROM customer INNER JOIN product ON customer.idproduct = product.idproduct WHERE (product.product='XP Usermanager') and (date BETWEEN '2005-04-01' and '2005-06-24') GROUP BY product.ver
Code:
Jetzt hätte ich es gerne, dass er mir die ersten beiden Spalten aufaddiert und da drunter schreibt:
count(*) | sum(product.erloes) | product.product | product.ver
3 | 21,30 | XP Usermanager | 3.0 8 | 56,80 | XP Usermanager | 3.1
Code:
Geht das irgendwie?
count(*) | sum(product.erloes) | product.product | product.ver
3 | 21,30 | XP Usermanager | 3.0 8 | 56,80 | XP Usermanager | 3.1 11 | 78,10 | | |
Re: Berechnete Felder aufaddieren
Moin
so früh am morgen Ich denke 2 Ansätze sind möglich entweder verpackst du das in eine SP wo du einfach mit adierst oder, falls deine Tabellen nicht alzu umfangreich sind nimm UNION
SQL-Code:
Das ist zawr nicht sonderlich elegant und effizient, aber halt schnell geproggt
SELECT count(*), sum(product.erloes), product.product, product.ver
FROM customer INNER JOIN product ON customer.idproduct = product.idproduct WHERE (product.product='XP Usermanager') and (date BETWEEN '2005-04-01' and '2005-06-24') GROUP BY product.ver UNION SELECT count(*), sum(product.erloes), product.product, product.ver FROM customer INNER JOIN product ON customer.idproduct = product.idproduct WHERE (product.product='XP Usermanager') and (date BETWEEN '2005-04-01' and '2005-06-24') eventuell noch ein Order by für die 1te Spalte dazumachen, damit deine globaen Summen auch wirklich unten stehen mfg wo |
Re: Berechnete Felder aufaddieren
Hallo Luckie,
Zitat:
Das von dir angestrebte Ausgabebild erreichst du wahrscheinlich am wirtschaftlichsten mit einem Report Generator. Noch ein Satz zu deiner Datenmodellierung. Es sieht zwar aus wie für den Eigengebrauch bestimmt, aber trotzdem - du brauchst eigentlich mindestens drei Tabellen. customer (id, name, ...) product (id, name, ver, preis) sales (id, cus_id, pro_id, menge, umsatz, datum) Das ganze kann man noch beliebig komplizieren, in dem man history tables für den Preis einführt oder Produktgruppen bildet, aber das interessiert dich wahrscheinlich gar nicht... Grüße vom marabu |
Re: Berechnete Felder aufaddieren
Schade. Mit drei Tabellen ginge es einfachher?
Wie du schon erkannt hast, ist es nur für mich privat und war etwas für mich zum Üben und Rumspielen mit MYSQL. Ich will es wirklich nicht übertreiben. Nachtrag: @WoGe: Habe dein Posting übersehen. Funktioniert prima, fehlte nur noch ein GROUP BY. Einziger Schönheitsfehler:
Code:
in den Spalten drei und vier sthet eben auch was.
count(*) | sum(product.erloes) | product.product | product.ver
3 | 21,30 | XP Usermanager | 3.0 8 | 56,80 | XP Usermanager | 3.1 11 | 78,10 | XP Usermanager | 3.0 |
Re: Berechnete Felder aufaddieren
Zitat:
marabu |
Re: Berechnete Felder aufaddieren
Liste der Anhänge anzeigen (Anzahl: 1)
@marabu
Zitat:
Aber wenn wir die obige Bedingung erfüllen geht folgendes:
SQL-Code:
das habe ich mit der angehängten Tabelle getestet. Das Ergebnis sieht in etwa so aus wie das von Luckie
SELECT count(*), sum(produkt.erloes), produkt.ver
FROM customer INNER JOIN produkt ON customer.produktid = produkt.id WHERE (produkt.produkt='Apfel') GROUP BY produkt.ver union SELECT count(*), sum(produkt.erloes), produkt.produkt FROM customer INNER JOIN produkt ON customer.produktid = produkt.id WHERE (produkt.produkt='Apfel') GROUP BY produkt.produkt erwartete. (Wegen der Randbedingungen ist dieses Konstrukt leicht fragwürdig) mfg wo Ach da wart Ihr mal wieder schneller, ich hoffe es nutzt trotzdem was |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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 by Thomas Breitkreuz