MySQL запрос и подзапрос неопытный

UnsignedFoo спросил: 26 ноября 2017 в 05:29 в: mysql

У меня есть 4 таблицы:

  1. entrevista
    • id_entrevista PK
    • Candidato FK Candidato (#id_candidato)
    • Действовать FK procso (#id_proceso)
    • resultado
  2. candidato
    • id_candidato PK
  3. procso
  • id_proceso PK
  • dpt FK DPT (#id_dpt)
  • 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
    

    0 ответов