Поздно к разговору ...
Если вы установили модуль и правильно установили свой файл PHP.INI, проверьте свой журнал ошибок apache примерно на следующее:
PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку «C: \ php \ ext \ php_mysqli.dll» - указанный модуль не найден.
В этом случае ваш каталог расширений не является тем, что вы думаю. Вы можете настроить его явно, например:
extension_dir="C:\xampp\php\ext"
Условная агрегация может справиться с этим довольно легко. Увлекательная часть - это электронные письма, но не невозможные вообще. Однако в вашем образце вывода есть только 17 столбцов (emcoid 1 - 4). Достаточно легко, если вам нужно настроить его, чтобы разместить пятый.
select x.emplid
, x.name
, conttp = max(case when x.RowNum = 1 then x.conttp end)
, conttp2 = max(case when x.RowNum = 2 then x.conttp end)
, conttp3 = max(case when x.RowNum = 3 then x.conttp end)
, conttp4 = max(case when x.RowNum = 4 then x.conttp end)
, conttp5 = max(case when x.RowNum = 5 then x.conttp end)
, conttp6 = max(case when x.RowNum = 6 then x.conttp end)
, phone = max(case when x.RowNum = 1 then x.phone end)
, phone2 = max(case when x.RowNum = 2 then x.phone end)
, x.fax
, email = max(case when x.RowNum = 1 then emails.email end)
, email2 = max(case when x.RowNum = 2 then emails.email end)
, emcoid1 = max(case when x.RowNum = 1 then x.emcoid end)
, emcoid2 = max(case when x.RowNum = 2 then x.emcoid end)
, emcoid3 = max(case when x.RowNum = 3 then x.emcoid end)
, emcoid4 = max(case when x.RowNum = 4 then x.emcoid end)
from
(
select *
, RowNum = ROW_NUMBER() over(partition by emplid order by emcoid)
from Contacts c
) x
join
(
select *
, RowNum = ROW_NUMBER() over(partition by emplid order by (select null))
from
(
select distinct email
, emplid
from Contacts
) a
) emails on emails.RowNum = x.RowNum
and emails.emplid = x.emplid
group by x.emplid
, x.name
, x.fax