Query mysql, подсчет реестры из-за [закрытой] даты

у меня есть problemita.

Я нуждаюсь в том, чтобы произвести query таким образом:

+-----------+------+-------+---+---+
| nombreSol | Enero|Febrero|...|Dic|
+-----------+------+-------+---+---+
| pedro     |  1   |   5   |...| 2 |
| juan      |  3   |   6   |...| 4 |
+-----------+------+-------+---+---+

Правда я новая в площади и искавший, как делание этого и не как.

Он был бы благодарен много за Вашу помощь.

0
задан 26.01.2017, 19:56
0 ответов

В зависимости от имени колонн и подмостков, оно должно бы быть чем-то похожим в:

SELECT 
    nombre,
    SUM(CASE WHEN MONTH(fecha) == 1 THEN 1 ELSE 0 END) as Enero,
    SUM(CASE WHEN MONTH(fecha) == 2 THEN 1 ELSE 0 END) as Febrero,
    // ----
    SUM(CASE WHEN MONTH(fecha) == 11 THEN 1 ELSE 0 END) as Noviembre,
    SUM(CASE WHEN MONTH(fecha) == 12 THEN 1 ELSE 0 END) as Diciembre
FROM tabla
GROUP BY nombre; // -- o id en caso de ser posible
1
ответ дан 03.12.2019, 17:29
  • 1
    Miiil спасибо!!! Функционируй совершенно!!! Só у меня это есть консультация má s. данные, что я получаю звук só это в 2017., но что pasarí если fuecen añ или предыдущий? aplicarí в where? –  26.01.2017, 20:46
  • 2
    @Anahí Рейес Камбиандо fecha deberí чтобы быть достаточным –  27.01.2017, 11:12

Ввиду схемы, которую ты помещаешь, и имея в виду, что таблица, где ты получаешь имена, связана с другой, я бы это реализовал с queries укрытые:

 SELECT a.id_nombre, a.nombre, 
    (SELECT count(*) from tablaB b where b.id_nombre = a.id_nombre AND month(b.fecha) == 1   ) as Enero,
    (SELECT count(*) from tablaB b where b.id_nombre = a.id_nombre AND month(b.fecha) == 2   ) as Febrero,...

  FROM nombres a

Этот был бы тот очень смиренное мнение, удача!!.

0
ответ дан 03.12.2019, 17:29

Теги

Похожие вопросы