Announcement

Collapse
No announcement yet.

Lücken dynamisch füllen

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

  • Lücken dynamisch füllen

    Guten Morgen liebe User,

    kurze Frage:
    Ist es möglich, wenn ich im Ergebnis fehlende Datensätze habe, sprich, mir fehlen in den Auswertungen, falls es keine Buchung für einen bestimmten Monat gibt, der komplette Datensatz mit Jahr und Monat. Ich möchte aber einfach die Lücken geschlossen haben, die fehlenden Datensätze sollen einfach angelegt werden (temporär).

    Gibt es dazu ein Schema oder Funktion?

    Grüße

  • #2
    Hallo,

    Kurze Antwort: Nein!

    SQL kennt keine Lücken, genausowenig wie eine Reihenfolge oder Vorgänger / Nachfolger. Wenn du eine bestimmte Datenmenge benötigst, die so in deinen Daten nicht existiert, dann musst du diese erzeugen/anlegen. Manche DBMS kennen WITH um beliebige Daten dynamisch zu erzeugen. Ansonsten musst du dir eine Hilfstabelle mit den benötigten Werten anlegen.

    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


    • #3
      Ich habe eine Tabelle, in der..

      Ich habe eine Tabelle, in der die Monate und Jahre vollständig angelegt sind. Aber wie müsste ich die dann verbinden, mit einem SELECT, dass mir die Lücken nicht mit IS NULL sondern mit den richtigen Angaben, Monat, Jahr etc fortlaufend gefüllt sind?

      Versteht ihr, wie ich das meine?Kompliziert zu beschreiben.

      Gruss

      Comment


      • #4
        OUTER JOIN zwischen den Tabellen? Wenn du ein anderes Problem hast solltest du das nochmal versuchen genauer zu beschreiben.

        [Highlight=SQL]SELECT A.Datum, B.Daten
        FROM vollstandigeDatumsTabelle A
        LEFT OUTER JOIN unvollständigeDatumstabelle B ON A.Datum = B.Datum[/Highlight]

        Comment


        • #5
          Hallo Vasquez155,

          Kurze Antwort: Ja!

          Es geht sicher eleganter, aber per "CROSS JOIN" funktioniert es bspw. auf dieser Art:

          [Highlight=SQL]
          SELECT --Schritt 3: Ergebnis aus Schritt1+2 zusammen rechnen
          Artikel_ID
          ,Jahr
          ,Monat
          ,SUM(Menge) as Menge
          FROM( --Schritt1: Jede Kombination aus Artikel, Monat und Datum erstellen
          SELECT DISTINCT
          Artikel_ID
          ,Jahr
          ,Monat
          ,0 as Menge --0 als Dummywert
          FROM Apollo_bestand_std a
          CROSS JOIN (SELECT DISTINCT Jahr FROM zeit) Jahre
          CROSS JOIN (SELECT DISTINCT Monat FROM zeit) Monate
          WHERE bestand_mandant = 1
          AND Artikel_ID = 3552
          UNION --vereine diese Artikel/Datums-Liste...
          --Schritt2: ...mit den Werten der echten Tabelle
          SELECT
          Artikel_ID
          , YEAR(bestand_datum) as Jahr
          , MONTH(bestand_datum) as Monat
          , SUM(bestand_delta) as Menge
          FROM Apollo_bestand_std a
          WHERE bestand_mandant = 1
          AND Artikel_ID = 3552
          GROUP BY Artikel_ID
          ,YEAR(bestand_datum)
          ,MONTH(bestand_datum)
          )temp
          GROUP BY
          Artikel_ID
          ,Jahr
          ,Monat
          ORDER BY
          Artikel_ID
          ,Jahr
          ,Monat
          [/Highlight]

          Um dir bei deiner konkreten Abfrage zu helfen, benötigen wir aber etwas mehr Infos deiner Tabellen.

          yxcv
          Zuletzt editiert von knoxyz; 16.01.2012, 14:45.
          Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

          Comment


          • #6
            Anbei Tabellenstruktur mit Ziel...

            Anbei folgende Frage, bei der ich einfach nicht weiterkomme. Habt ihr vllt jetzt hierzu eine Idee?

            Dankeschön schonmal für eure Hilfe...!
            Attached Files

            Comment


            • #7
              Hallo Vasquez155,

              bin die letzte Tage nicht zu gekommen.
              Hast du es schon selbst lösen können?
              Und Falk Prüfer sprach: Formatierung von SQL in Beiträgen

              Comment

              Working...
              X