Announcement

Collapse
No announcement yet.

Bei Group By auch Leersätze anzeigen

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

  • Bei Group By auch Leersätze anzeigen

    Hallo zusammen,

    ich habe in Paradox folgendes SQL
    <PRE>
    SELECT KW, COUNT(SollTerm) AS Anzahl
    FROM PPS_TermKom
    Where IstTerm>SollTerm AND SollJahr = 2003
    GROUP BY KW
    </PRE>

    Dies funktioniert auch einwandfrei. Einziger Nachteil:

    Ist z.B. in KW 3 kein Eintrag da, der die Bedingung erfüllt, wird auch kein Satz angezeigt. Ich hätte aber gerne einen Eintrag, aber eben mit 0.

    Beispiel:<BR>
    1 35<BR>
    2 12<BR>
    3 0<BR>
    4 7, usw.<BR>

    Folgende Beschränkungen wären möglich:
    Es werden nur Sätze angezeigt, wenn überhaupt ein Eintrag in dieser KW vorhanden ist, oder

    Es werden immer KW 1..52 angezeigt

    Sieht hier jemand eine Realisiermöglichkeit?

    Vielen Dank

    Gerd

  • #2
    Dies ist AFAIK Standard. Auch wenn Paradox sonst nicht immer dem ANSI-Standard folgt - hier macht es genau dies.<BR>
    Ich würde bei anderen DBMS hier über Subselects arbeiten, Paradox kann dies AFAIK aber nicht.

    Joachi

    Comment


    • #3
      Hallo!<br>
      Ich kann mich noch ganz finster erinern, daß PDW left outer joins kennt<br>
      (Oder etwa nicht?!?)<br>
      Der Trick ist dann eine Tabelle anzulegen, die nur aus einer einzigen Spalte besteht, in der untereinander alle KWs aufgelistet sind.<br>
      Jetzt diese KWTable selektieren und einen left outer join auf Deine Zieltabelle einrichten.<br>
      Ich kanns hier leider nicht testen aber das Statement müßte wie folgt aussehen:<br>
      select kwtable.kw, COUNT(PPS_TermKom.SollTerm) AS Anzahl from kwtable left outer join PPS_TermKom on kwtable.kw = PPS_TermKom.kw<br>
      Wie gesagt ich kann es hier leider nicht testen!!!!<br>
      BYE BERN

      Comment


      • #4
        Hallo Bernd,

        die Idee hatte ich auch schon. Es ist aber daran gescheitert, dass sich die Suchzeit bei gleicher Datenmenge von ca 2 auf 18 Sekunden verlängert hat. Da die Datenmenge sich in nächster Zeit noch stark erhöhen wird, habe ich von diesem Verfahren Abstand genommen.

        Hat sonst noch jemand eine Idee?

        Danke
        Ger

        Comment


        • #5
          Hallo!<br>
          Wie vorher auch konnte ich auch dies hier NICHT testen:<br>
          Wenn man für alle KWs und Jahre jeweils einen Dummysatz anlegt und jetzt das Statement "rechnen" läßt:<br>
          select kw, count(*)-1 from test<br>
          (Unter MS SQL funktioniert das!)<br>
          Ansonsten:<br>
          Datenbank wechseln oder die selektierten Daten "nachbearbeiten"<br>
          <br>
          BYE BERN

          Comment

          Working...
          X