Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

AW: wo nichts ist kann man nichts zählen?

  Alt 10. Okt 2012, 15:56
Ich bin in der zwischenzeit ein Stückchen weiter, Jeder meiner werte kann nicht vorhanden/null sein, darum und weil ich inzwischen
Code:
with
einsetze sieht das alles ein wenig anders aus:
Code:
with bucnt as
(
  select count(distinct SR.casekey) cnt
        ,decode(substr(v_mk.Busunit,1,1),'T','A','W','W','K','K','A','A','sonstige') BU
  .......
)
select max(a_c) PT_LEBSRA
      ,max(k_c) PT_LEBSRK
      ,max(w_c) PT_LEBSRW
      ,max(misc_c) PT_LEBSRM_
      ,max(a_c)+max(k_c)+max(w_c)+max(misc_c) PT_LEBSR
from
  (select a_c,k_c,w_c,misc_c
    from
     (select nvl(bucnt.cnt,0) a_c
      ,0 w_c, 0 Misc_c
      from bucnt
      where bucnt.bu='A')
     full outer join
     (select nvl(cnt,0) k_c
      from bucnt
      where bucnt.bu='K') on 1=1
  union
    select a_c,k_c,w_c,misc_c
    from
     (select nvl(cnt,0) w_c,0 k_c,0 a_c
      from bucnt
      where bucnt.bu='W')
     full outer join
     (select cnt misc_c
      from bucnt
      where (bucnt.bu<>'A' and bucnt.bu<>'K' and bucnt.bu<>'W') or bucnt.bu is null
     ) on 1=1
    )
Grund für die Umstellung auf den Union war, daß in der with-Subquery die Tabelle nicht mehr erkannt wurde solange "unten" mehr als 2 Tabellen "gejoind" wurden.
Etwas seltsam aber so ist es eben.
Vorteil ist, daß meine "Ergebnistabelle immer mindestens einen 0-Wert hat(?).

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat