dedlfix: Nachschlag

Beitrag lesen

Hi!

Ich möchte dich dazu ermutigen, doch die Subselect-Lösung zu präferieren.
Die Subselects sind für mich bömische Dörfer.

Dabei ist das doch eigentlich recht einfach. Das vorher getestete Statement kommt in Klammern und anstelle des Namens der zu joinenden Tabelle. Oder anders gesagt, statt der Datenmenge aus der zweiten Tabelle wird die Ergebnismenge des Subselects verwendet.

Erstell dir zunächst die Query ohne den Join. Die kannst du ausgiebig testen.
Die habe ich schon (für ein anderes Fallbeispiel) vor Monaten erstellt und sie läuft einwandfrei. Nur die Leermonate fehlen eben.
Sobald ich aber den Join implementieren möchte, spinnt sie rum.

Auch in der Subselect-Variante?

"Unsinnig" heißt vermutlich, dass die Rechnung nicht stimmen kann.
Für das Fallbeispiel "Ausgaben", ja.
Aber schon bei den normalen "Zähl-Fallbeispielen, also über die Agg.-Funkt. count spinnt meine Abfrage, sobald der Join ins Spiel kommt.

Sollte mit dem Subselect eigentlich kein Problem sein.

Es gibt noch eine weitere Variante mit einem Zwischenschritt:

CREATE TEMPORARY TABLE monatsdaten SELECT [das meinedaten-Statement - das mit den fehlenden Monaten aber der richtigen Rechnung]
SELECT [wasauchimmer] FROM monate LEFT JOIN monatsdaten ON [nur die verknüpfungsbedingung] ORDER BY [jahr/monat] DESC

Das macht das selbe wie wenn statt monatsdaten das Subselect direkt notiert wäre - nur aufwendiger, dafür vielleicht einfacher zu durchschauen.

Lo!

0 54

Problem bei einer Query

Franco
  • datenbank
  1. 0
    suit
  2. 0
    dedlfix
    1. 0
      Franco
      1. 0
        Vinzenz Mai
        1. 0
          Franco
          1. 0
            dedlfix
            1. 0
              Franco
              1. 0
                dedlfix
                1. 0
                  Franco
                  1. 0
                    Vinzenz Mai
                    1. 0
                      Franco
                      1. 0
                        dedlfix
                        1. 0
                          Franco
                          1. 0
                            dedlfix
                            1. 0
                              Franco
                              1. 0
                                dedlfix
                                1. 0
                                  Franco
                                  1. 0

                                    Code zum Nachbasteln

                                    Franco
                                    1. 0
                                      dedlfix
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Vinzenz Mai
                                        2. 0
                                          Franco
                                          1. 0
                                            Vinzenz Mai
                                            1. 0

                                              Nachschlag

                                              Franco
                                              1. 0
                                                Ilja
                                                1. 0
                                                  dedlfix
                                                  1. 0
                                                    Franco
                                                  2. 0
                                                    Ilja
                                              2. 0
                                                dedlfix
                                                1. 0
                                                  Franco
                                                  1. 0
                                                    Vinzenz Mai
                                                    1. 0
                                                      Franco
                                                  2. 0
                                                    dedlfix
                                                    1. 0
                                                      Franco
                                                      1. 0

                                                        Nachschlag, Tag 3

                                                        Franco
                                                        1. 0
                                                          dedlfix
                                                          1. 0
                                                            Franco
                                                            1. 0
                                                              dedlfix
                                                              1. 0
                                                                Franco
                                                                1. 0
                                                                  Franco
                                                                2. 0
                                                                  dedlfix
                                            2. 0
                                              Franco
                          2. 0
                            Ilja
                  2. 0
                    dedlfix
                    1. 0
                      Franco
                      1. 0
                        dedlfix
    2. 0
      Franco
      1. 0
        dedlfix
        1. 0
          Franco
          1. 0
            dedlfix
        2. 0
          Franco
          1. 0
            dedlfix
            1. 0
              Franco