Thema: Syntaxanfrage

Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

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

AW: Syntaxanfrage

  Alt 15. Aug 2016, 17:21
Vielen Dank für die vielen Antworten.
Zunächst einmal, PIVOT war ein gutes Stichwort ich hab eine der vorhandenen Abfragen mal umgestellt, jetzt ist es etwas übersichtlicher:
SQL-Code:
with bucnt as
(
select count(v_lebfam.casekey) cnt
,decode(substr(v_mk.Busunit,1,1),'T','A','L','L','B','B','A','A','sonstige') bu
from v_lebfam,v_MK
 ,(select distinct familykey
from cases join caseevent on (cases.casekey=caseevent.casekey and eventkey=25) --Grant
where cases.casetypekey=1
  and cases.casereference not like 'TE%'
  and cases.casereference like 'PT%'
  and not exists(select * from caseevent e where e.casekey=cases.casekey and e.eventkey=30) -- ABD
  and not exists(select * from caseevent e where e.casekey=cases.casekey and e.eventkey=50 and e.eventdate is not null) -- ABD
) erteilt
where v_lebfam.casekey=v_MK.casekey(+)
  and v_lebfam.casekey=erteilt.familykey
group by decode(substr(v_mk.Busunit,1,1),'T','A','L','L','B','B','A','A','sonstige')
)
select 'ErfMeldas Topic,A,B,L,Sonstige from bucnt pivot(sum(cnt) for (bu) in ('Aas A,'Bas B,'Las L,'sonstigeas Sonstige))
(Ist etwas anders als die erste Abfrage, aber das Prinzip ist das gleiche)

@nahpets & @jobo
Es kann vorkommen, daß es zu einem oder mehreren BU keinen Wert gibt. Wenn die entsprechende Zeile dann nicht vorhanden ist, gibt es immer noch die Basisdaten, die bei max(spalte) auf jeden Fall die 0 liefern.

Mal schauen was ich aus den beiden Möglichkeiten mache, da ich auch gerne "Topic" im ersten Select unterbringen würde.

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