Объединение многих таблиц с условием - PullRequest
0 голосов
/ 29 марта 2019

где я должен поставить условия для отдельных пользователей на основе 'Роли'?

это моя скрипка https://www.db -fiddle.com / ж / rcsGy77aooBJFfXnvdi6K1 / 0

Мои последние результаты такие

enter image description here

Я хочу добавить больше столбцов на основе «ролей». может быть так будет

dinas_id | dinas_nama | total_user(Admin) | total_user(Kontraktor) | total_user(Pptk) | total_user(Bidang) | total_user(Konsultan) | total_user(Dll) | total_user(Owner) | total_bidang | total_kegiatan | total_paket 

1 Ответ

1 голос
/ 29 марта 2019

возможно, это то, что вы ищете

SELECT dinas.dinas_id,
   dinas_nama,
   (select count(*) from sc_user where role='Admin' and dinas_id = dinas.dinas_id) as 'total_user(Admin)',
   (select count(*) from sc_user where role='Kontraktor' and dinas_id = dinas.dinas_id) as 'total_user(Kontraktor)',
   (select count(*) from sc_user where role='Pptk' and dinas_id = dinas.dinas_id) as 'total_user(Pptk)',
   (select count(*) from sc_user where role='Bidang' and dinas_id = dinas.dinas_id) as 'total_user(Bidang)',
   (select count(*) from sc_user where role='Konsultan' and dinas_id = dinas.dinas_id) as 'total_user(Konsultan)',
   (select count(*) from sc_user where role='Dll' and dinas_id = dinas.dinas_id) as 'total_user(Dll)',
   (select count(*) from sc_user where role='Owner' and dinas_id = dinas.dinas_id) as 'total_user(Owner)',
   COUNT(DISTINCT sc_bidang.bi_id) as total_bidang,
   COUNT(DISTINCT sc_kegiatan.ke_id) as total_kegiatan,
   COUNT(DISTINCT sc_kegiatan.ke_id, sc_paket.pa_id) as total_paket
FROM dinas
LEFT JOIN sc_user on dinas.dinas_id=sc_user.dinas_id
LEFT JOIN sc_bidang on dinas.dinas_id=sc_bidang.dinas_id
LEFT JOIN sc_kegiatan on dinas.dinas_id=sc_kegiatan.dinas_id
LEFT JOIN sc_paket on sc_paket.ke_id=sc_kegiatan.ke_id
GROUP by dinas.dinas_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...