Fortuna Entwickler Blog

Hier wird Ihnen geholfen

HK by gut beraten

Gelegentlich ist für HK eine Auswertung zu erstellen, kurz genannt 'HK by gut beraten'.

Hierfür wird eine Liste von Personen (aus der IWM Datenbank) selektiert, welche im ebenso benannten Kommunikationsfeld einen Eintrag haben.

SELECT prs.CNAME, prs.CVORNAME,
tel.CNUMMER
FROM ADRESSEN adr
INNER JOIN PERSON prs ON adr.NPERSON = prs.NVIRTNR
INNER JOIN TELECOM tel ON tel.NCOMART = '11110000000022' AND tel.NADRESSEN = adr.NVIRTNR
WHERE adr.NCOMART00 = '11110000000022'
OR adr.NCOMART01 = '11110000000022'
OR adr.NCOMART02 = '11110000000022'
OR adr.NCOMART03 = '11110000000022'
OR adr.NCOMART04 = '11110000000022'
OR adr.NCOMART05 = '11110000000022'
OR adr.NCOMART06 = '11110000000022'
OR adr.NCOMART07 = '11110000000022'
OR adr.NCOMART08 = '11110000000022'
OR adr.NCOMART09 = '11110000000022'
ORDER BY prs.CNAME, prs.CVORNAME;

Mit der letzten Auswertung wurde hier eine weiter Information benötigt, die Kategorie des Mitarbeiters. Aufgrund des Aufbaus der Daten machte das sie Auswertung deutlich komplexer: Die Kategorie ist direkt dem Mitarbeiter zugeordnet; das Kommnikationsfeld ist bisher immer bei einem Ansprechpartner des Mitarbeiters hinterlegt. Beide werden in der Tabelle PERSON geführt, stehen aber in einer Relation zueinander.

Der notwendige Code bleibt dennoch überschaubar:

SELECT	per.CNAME, per.CVORNAME, tel.CNUMMER,
ISNULL(kat.CKATEGORIE, '') AS KATEGORIE
FROM TELECOM tel
INNER JOIN ADRESSEN adr ON tel.NADRESSEN = adr.NVIRTNR
INNER JOIN PERSON per ON adr.NPERSON = per.NVIRTNR
INNER JOIN ANSPRECH ans ON ans.NPERSON = per.NVIRTNR
INNER JOIN PERSON per2 ON ans.NANSPRECH = per2.NVIRTNR
INNER JOIN MITARB mit ON per2.NVIRTNR = mit.NPERSON
LEFT OUTER JOIN KUNDKAT kat ON mit.NKUNDKAT = kat.NVIRTNR
WHERE tel.NCOMART = '11110000000022';

Die exportierten Daten werden dann als Excel geliefert.