von heinz_ketchup » Fr, 30.07.2010 18:42
Hallo,
ich brauch wieder mal eure Hilfe. Sicherlich habe ich einen Denkfehler beim Aufbau meiner Abfrage.
Ich möchte einen Faktor pro Kostenstellen-Nr und Konto ermitteln, der den Anteil der Kontensumme in Relation zum Umsatz ausweist.
Planfaktor = ∑ Konto / ∑ Umsatz
Code: Alles auswählen
SET @basisjahr = 2010;
INSERT INTO planfaktor_test (pf_ktonr, pf_kstnr, pf_text, pf_wert, pf_monat, pf_jahr)
SELECT
konten.ktoa_nr + 10000,
id_kst_dt,
CONCAT('Plan ', ktoa_bezeichnung),
SUM(id_wert)/(
SELECT
SUM(id_wert)
FROM istdaten, konten
WHERE id_jahr = @basisjahr AND id_ktonr = kto_nr AND konten.ktoa_nr BETWEEN 2 AND 20
GROUP BY id_kst_dt ) AS t1,
id_monat,
id_jahr
FROM istdaten, konten, kostenstellen, kontenart
WHERE id_jahr = @basisjahr AND id_ktonr = kto_nr AND konten.ktoa_nr = kontenart.ktoa_nr
GROUP BY id_kst_dt
Nun bekomme ich die Fehlermeldung "Subquery returns more than 1 row". Ich habe natürlich meine Subquery auch getestet. Und ja richtig die liefert die Summe der Umsätze von jeder Kostenstelle. Und genau da liegt dann wohl mein Denkfehler.
Wie muß ich meine Subquery aufbauen, dass sie genau die Summe des Umsatzes liefert, die zur Summe des Kontos passt, damit der Planfaktor richtig berechnet werden kann.
Ich hoffe ich habe euch mit meinen Ausführungen nicht allzu sehr verwirrt. Vielleicht versteht ja jemand mein Problem und kann mir den entscheidenden Gedankenanstoß liefern.
Danke für eure Mühe und euer Interesse!
Schöne Grüße
Hallo,
ich brauch wieder mal eure Hilfe. Sicherlich habe ich einen Denkfehler beim Aufbau meiner Abfrage.
Ich möchte einen Faktor pro Kostenstellen-Nr und Konto ermitteln, der den Anteil der Kontensumme in Relation zum Umsatz ausweist.
Planfaktor = ∑ Konto / ∑ Umsatz
[code]SET @basisjahr = 2010;
INSERT INTO planfaktor_test (pf_ktonr, pf_kstnr, pf_text, pf_wert, pf_monat, pf_jahr)
SELECT
konten.ktoa_nr + 10000,
id_kst_dt,
CONCAT('Plan ', ktoa_bezeichnung),
SUM(id_wert)/(
SELECT
SUM(id_wert)
FROM istdaten, konten
WHERE id_jahr = @basisjahr AND id_ktonr = kto_nr AND konten.ktoa_nr BETWEEN 2 AND 20
GROUP BY id_kst_dt ) AS t1,
id_monat,
id_jahr
FROM istdaten, konten, kostenstellen, kontenart
WHERE id_jahr = @basisjahr AND id_ktonr = kto_nr AND konten.ktoa_nr = kontenart.ktoa_nr
GROUP BY id_kst_dt[/code]
Nun bekomme ich die Fehlermeldung "Subquery returns more than 1 row". Ich habe natürlich meine Subquery auch getestet. Und ja richtig die liefert die Summe der Umsätze von jeder Kostenstelle. Und genau da liegt dann wohl mein Denkfehler.
Wie muß ich meine Subquery aufbauen, dass sie genau die Summe des Umsatzes liefert, die zur Summe des Kontos passt, damit der Planfaktor richtig berechnet werden kann.
Ich hoffe ich habe euch mit meinen Ausführungen nicht allzu sehr verwirrt. Vielleicht versteht ja jemand mein Problem und kann mir den entscheidenden Gedankenanstoß liefern.
Danke für eure Mühe und euer Interesse!
Schöne Grüße