Thomas D.
Einkauf gegen Verkauf rechnen
- datenbank
0 Lachgas0 Thomas D.0 ulimatvi0 Thomas D.
0 fastix®
0 Frank (no reg)
0 DOPPELPOSTING
Ludger
Moin Moin....
Ich weiss ja nicht wo hier der Hund begraben ist, aber ich möchte nur den Einkauf gegen den Verkauf rechnen.
Hab wohl irgentwo einen Gedankenfehler.
Wäre nett wenn mir jemand dabei helfen könnte.
SELECT SUM( vk )
FROM verkaeufe
WHERE MONTH( geldeingang) =05
Ergebnis: 49.89
SELECT SUM( ek )
FROM einkaeufe
WHERE MONTH( datum ) =05
Ergebnis: 276.46
vk - ek muesste dann eigentlich noch ein Minus geben von -226.57 €
Nun habe ich mir das so zusammen gestrickt
SELECT SUM( e.ek - v.vk ) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5
Ergebnis : 4.13
Wo hab ich hier den Gedankenfehler ??
Danke schön schon Mal im vorraus und einen schönen Pfingstmontag.
Gruss Thomas
Hallo Thomas!
Und schon wieder so ein vertauscher von "Name" und "Thema"!
SELECT SUM( e.ek - v.vk ) as gewinn
Naja, besser so: SELECT SUM (e.ek) - SUM (v.vk) AS gewinn
FROM einkaeufe e, verkaeufe v
Fehlt da nicht ein AS?
℆, ℒacℎgas
Hi...
Also hab es umgestrickt
SELECT SUM( e.ek ) - SUM( v.vk ) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5
Ergebnis weiterhin 4.13 €
Da kann was nicht stimmen, wenn ich nur wüßte wo.
Hi
Probiers mal so:
SELECT (SUM( e.ek ) - SUM( v.vk )) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5
Gruß Uli
Habs probiert gleiches Ergebnis, ich verteh es nicht
SELECT (SUM( e.ek ) - SUM( v.vk )) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5
immer noch 4.13, dabei bekomme ich bei den SUm Abfragen
wie im ersten Thread beschrieben die Gesamtbeträge
ausgeworfen.
Kann da was an der Tabellenstruktur falsch sein ?
Hallo,
SELECT (SUM( e.ek ) - SUM( v.vk )) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5immer noch 4.13, dabei bekomme ich bei den SUm Abfragen
wie im ersten Thread beschrieben die Gesamtbeträge
ausgeworfen.
nein, du machst einen logischen Fehler. Da du die Datensätze nicht über die Artikelnummer verknüpfst, bekommst du in den Summen auch Artikel mit ek in 5 und vk in 6, oder vk in 5 und ek in 4 usw..
Hilfreich ist es in solchen Fällen immer, sich Teilergebnisse anzusehen, bevor man Summen bildet.
select e.ek Einkauspreis, v.vk Verkaufspreis, g.geb Gebuehren, e.artikelnr ArtikelNr, e.datum Einkausdatum, v.datum Verkaufsdatum
from einkaufe e, verkaeufe v, gebuehren g
where month(e.datum) = 5
and month(v.datum = 5
and e.artikelnr = v.artikelnr
cu,
ziegenmelker
Hallo Ziegenmelker
War mal wieder ein sehr guter Tip, hab mir die ganze Sache mal zu gemüte geführt und es an meine Bedürfnisse angepasst.
Guckst du ->
select e.ek Einkaufspreis, v.vk Verkaufspreis, g.gesamt Gebühren,
e.artikelnummer EKArtikelNr,
v.artikelnummer VKArtikelNr, e.datum Einkaufsdatum , v.geldeingang
Verkaufsdatum from einkaeufe e,
verkaeufe v, gebuehren g
where month(e.datum) = 5
and month(v.geldeingang) = 5 and e.artikelnummer = v.ekartikelnummer and
g.artikelnummer = v.artikelnummer
Supi, gibt mir nun die wesentlichen Spalten aus, nur wie berechne ich nun die Gesamtsumme aus dem Table einkaeufe, gegen gerechnet zu den gesamten Verkaeufen aus Table verkaeufe.
Eigentlich nur zusammen rechnen der Gesamtsumme EK aus einkaeufe, danach zusammen rechnen der Gesamtsumme vk aus verkaeufe und dann GesamtEK - Gesamtvk rechnen.
Hallo Thomas,
select e.ek Einkaufspreis, v.vk Verkaufspreis, g.gesamt Gebühren,
e.artikelnummer EKArtikelNr,
v.artikelnummer VKArtikelNr, e.datum Einkaufsdatum , v.geldeingang
Verkaufsdatum from einkaeufe e,
verkaeufe v, gebuehren g
where month(e.datum) = 5
and month(v.geldeingang) = 5 and e.artikelnummer = v.ekartikelnummer and
g.artikelnummer = v.artikelnummer
Supi, gibt mir nun die wesentlichen Spalten aus, nur wie berechne ich nun die Gesamtsumme aus dem Table einkaeufe, gegen gerechnet zu den gesamten Verkaeufen aus Table verkaeufe.
Eigentlich nur zusammen rechnen der Gesamtsumme EK aus einkaeufe, danach zusammen rechnen der Gesamtsumme vk aus verkaeufe und dann GesamtEK - Gesamtvk rechnen.
ja, das machst du wieder mit der sum-Funktion, beachte aber daß diese Aggregatfunktionen scheitern, wenn du noch Spalten wie EKArtikelNr hast. Dein gewünschtes Ergebnis soll ja nur eine Zeile haben, deshalb sprach ich bei diesem Query hie auch von einem Zwischenschritt.
Wenn du jetzt erkannt hast, daß deine Ergebnismenge korrekt ist, lässt du die irrelevanten Spalten einfach weg und bildest wie gehabt deine Summe.
Entweder über sum(e.ek) as Gesamteinkaufspreis, sum(v.vk) as .......
oder über sum(v.vk - e.ek - g.gesamt) as Gesamtgewinn
cu,
ziegenmelker
Hier mal ein paar Select Befehle die nun auch alle funzen
Verkaufte Waren gegen Eingekaufte Waren gerechnet
-------------------------------------------------
select sum(v.vk)- sum(e.ek) as Gesamtgewinn from verkaeufe v,
einkaeufe e where e.verkauft = v.artikelnummer
Reingewinn von verkauften Waren (noch kein Zahlungseingang auf Konto)
---------------------------------------------------------------------
select sum(v.vk)- sum(e.ek) - sum(g.gesamt) as Gesamtgewinn from verkaeufe v,
einkaeufe e, gebuehren g where e.verkauft = v.artikelnummer and
g.artikelnummer = v.artikelnummer
Reingewinn nach Zahlungseingängen
----------------------------------
select sum(v.vk)- sum(e.ek) - sum(g.gesamt) as Gesamtgewinn from verkaeufe v,
einkaeufe e, gebuehren g where e.verkauft = v.artikelnummer and
g.artikelnummer = v.artikelnummer and MONTH(e.datum) = 05 and
MONTH (v.geldeingang) = 05
Danke Herr Ziegenmelker
Hallo,
erläutere bitte nochmal deine Tabellenmodellierung genauer. Aus deinem Posting weiter unten werd ich nicht wirklich schlau.
Und vorallem, welches Ergebnis möchtest du? Du summierst irgendwelche VK Beträge von irgendwelchen EK Beträgen in Abhängigkeit von Monaten...
Versuche dein Problem / deine Aufgabenstellung einfach nochmal zu beschreiben.
Kann da was an der Tabellenstruktur falsch sein ?
Technisch vielleicht nicht, aber logisch durchaus.
Ciao, Frank
Moin!
SELECT SUM( e.ek ) - SUM( v.vk ) as gewinn
FROM einkaeufe e, verkaeufe v
WHERE MONTH( e.datum) = 5 and MONTH (v.geldeingang) = 5Ergebnis weiterhin 4.13 €
Dann wir es zeit nachzuschauen, in welcher der Datensätze der Geldeingang UND das Einkaufsdatum im Mai war. Vielleicht hilft Dir ein:
WHERE
MONTH( e.datum) = 5
OR
MONTH (v.geldeingang) = 5
über den Berg.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hallo,
Fehlt da nicht ein AS?
Nicht unbedingt, kommt auf die DB an, bei Oracle, MS Access und SQL Server ist das AS meines Wissens nach optional, erhöht aber die Lesbarkeit.
Ciao, Frank
Hi Ludger
Wo ist das denn ein Doppelposting hier geht es zwar um die selbe Datenbank aber um eine ganz andere Sache. Sollte ich mich irren, bitte ich um Entschuldigung und setze bei dem alten Posting wieder an.
Grus Thomas