У меня есть 4 таблицы:
- entrevista
- id_entrevista PK
- Candidato FK Candidato (#id_candidato)
- Действовать FK procso (#id_proceso)
- resultado
- candidato
- id_candidato PK
procso
- id_proceso PK
- dpt FK DPT (#id_dpt)
- id_dpt PK
Мне нужно, чтобы в моем запросе для поиска для каждого "ЦСТ" отображалось количество "id_entrevista" для каждого "procso", но entrevista.resultado = 1 и должен быть последней строкой каждого entrevista.candidato
Но если у меня есть несколько строк с таким же entrevista.candidato:
, то только сейчас я могу взять сумму (количество) entrevista.id_entrevista:
SELECT p.id_proceso,
(
SELECT count(id_entrevista)
from entrevista
where entrevista.proceso = p.id_proceso
) as total
from proceso p
where dpt = 99 //this is the current dpt
Но мне нужен подзапрос:
SELECT p.id_proceso,
(
SELECT count(id_entrevista)
from entrevista
where entrevista.proceso = p.id_proceso
) as total,
(
//here
) as approved
from proceso p
where dpt = 99 //this is the current dpt
У меня есть идея, чтобы проверить последний каждого entrevista
в candidato
. Примерно так:
SELECT *
FROM entrevista
WHERE proceso = 120 and candidato = 374
ORDER BY fecha_entrevista DESC LIMIT 1
Это даст мне proceso
, который в результате будет 1 или 0. Мне нужны только resultado
строки, которые возвращают 1 из запроса
например:
|entrevista |
-----------
0001 | 0001 | 0001 | 20-12-2017 | 1
0002 | 0001 | 0001 | 21-12-2017 | 0
0003 | 0002 | 0001 | 20-12-2017 | 1
0004 | 0003 | 0001 | 20-12-2017 | 1 | candidato |
----------
0001 | Foo
0002 | Bar
0003 | John Doe |proceso |
----------
0001 | FooProceso | 0001 | DPT |
----
0001 | FooDPT
Ожидаемый результат:
Proceso | Amount of interviews | Amount of pass
--------------------------------------------------
FooProceso | 4 | 2