Od strony wydruku, nie podpowiem (bo się nie znam), ale od strony bazy danych, zarówno mail jak i telefon są trzymane w jednej tablicy i określane za pomocą Rodzaju, więc może to kwestia ustawienia czegoś, skoro maila już Pan wyciągnął
To przykład na przedstawicieli handlowych, ale wystawiający też ma identyfikator Osoby i to one łączą się z tablicą Kontakty:
SELECT o.Id, CONCAT(o.Imie,' ',o.Nazwisko) AS ImieNazwisko, st.Nazwa AS Stanowisko, p.Stanowisko_Id
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=1) AS Telefon
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=2) AS Fax
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=3) AS Email
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=4) AS WWW
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=5) AS GG
,(SELECT k.Wartosc FROM ModelDanychContainer.Kontakty AS k WHERE k.Podmiot_Id=o.Podmiot_Id AND k.Rodzaj_Id=6) AS Skype
FROM ModelDanychContainer.Firmy AS f
INNER JOIN ModelDanychContainer.Przedstawiciele AS p ON p.Firma_Id=f.Id
INNER JOIN ModelDanychContainer.Osoby AS o ON o.Id=p.Osoba_Id
LEFT JOIN ModelDanychContainer.Stanowiska AS st ON st.Id=p.Stanowisko_Id
WHERE f.Firma_Podmiot_Id=X