Announcement

Collapse
No announcement yet.

kleiner als bei nichtgemeinsamer Schnittmenge

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Wolf-Tilmann View Post
    Und damit würden auch die Monate '2011-10' und 2011-11' unter den Tisch fallen, in denen PLANzahlen festgelegt wurden.
    Also brauchst du schon den OUTER JOIN und willst lediglich die Planzahlen nicht anzeigen, deren zugehöriger Kalendermonat kleiner oder gleich dem maximal mit Istzahlen belegtem Kalendermonat ist!? Warum filterst du dann nicht einfach mit einer Where-Klausel?
    [highlight=sql]
    ...
    WHERE monatssummen.Kal_Mon <= (
    select max(sapsumme0822.KalMon)
    from sapsumme0822
    )
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #17
      Vielen Dank

      Vielen Dank an Euch alle, die Ihr mir sehr geholfen habt.

      Jetzt bekomme ich genau die Ausgaben, welche ich benötige.
      Falls noch jemand mit einem ähnlich zu formulierenden Problem kämpft hier wäre die Formulierung
      [HIGHLIGHT=SQL]
      CREATE VIEW "abweichungen" AS SELECT monatssummen.KAL_Mon AS Kalendermonat ,
      monatssummen.Sum_Mon AS PLANzahlen,
      sapsumme0822.Betrag AS ISTzahlen,
      round(CASE WHEN sapsumme0822.Betrag IS NULL THEN monatssummen.Sum_Mon ELSE monatssummen.Sum_Mon - sapsumme0822.Betrag END ,2) AS Abweichung
      FROM monatssummen
      LEFT OUTER JOIN sapsumme0822 ON monatssummen.KAL_Mon = sapsumme0822.KalMon
      WHERE
      monatssummen.Kal_Mon <= ( SELECT
      MAX(sapsumme0822.KalMon) FROM sapsumme0822
      WHERE sapsumme0822.KalMon != 'Summe')
      UNION
      SELECT
      'Summe' AS Kalendermonat,
      round(total(monatssummen.Sum_Mon),2) AS PLANzahlen,
      round(total(sapsumme0822.Betrag),2) AS ISTzahlen,
      round(total(CASE WHEN sapsumme0822.Betrag IS NULL THEN monatssummen.Sum_Mon ELSE monatssummen.Sum_Mon - sapsumme0822.Betrag END) ,2) AS Abweichung
      FROM
      monatssummen
      LEFT OUTER JOIN sapsumme0822
      ON
      monatssummen.KAL_Mon = sapsumme0822.KalMon
      WHERE
      monatssummen.Kal_Mon <= (
      SELECT
      MAX(sapsumme0822.KalMon)
      FROM sapsumme0822
      WHERE
      sapsumme0822.KalMon != 'Summe')
      [/HIGHLIGHT]
      Das gibt mir korrekt aus:
      Kalendermonat PLANzahlen ISTzahlen Abweichung
      2011-10 370 370
      2011-11 5733.33 5733.33
      2011-12 8351.18 11571.44 -3220.26
      2012-01 10463.13 10195.96 267.17
      2012-02 7949.15 10534.29 -2585.14
      2012-03 4512.78 5601.66 -1088.88
      2012-04 7016.22 2637.5 4378.72
      2012-05 13974.66 9628.69 4345.97
      2012-06 31963.04 28686.17 3276.87
      2012-07 41219.79 43561.24 -2341.45
      2012-08 22227.42 34784.61 -12557.19
      2012-09 29481.06 26563.09 2917.97
      2012-10 52339.53 36984.6 15354.93
      2012-11 72221.33 84374.12 -12152.79
      Summe 307822.62 305123.37 2699.25


      Ich wünsche allen ein friedvolles Weihnachtsfest und ein erfolgreiches neues Jahr

      Wolf-Tilmann
      Aktuell "unerlaubt" verwendete Datenbank: SQLite - Da kommt mein Admin nicht dahinter :-)

      Ach ja:
      Daten lassen sich am Besten mit der Keule bearbeiten.

      Comment

      Working...
      X