没有显示所有结果

时间:2016-04-12 13:34:18

标签: mysql sql

我试图在某个月内从所有协作者那里获取数据。问题是,如果某个部门当月没有数据,我将不会获得该部门的行。

这是我正在尝试的查询。

SELECT t1.ano, t1.mes,t1.departamento_id, t1.departamento_nome, tempo_extra, tempo_ativo, tempo_extra/tempo_ativo AS volume_extra
FROM (
SELECT YEAR(`data`) AS ano, MONTH(`data`) AS mes, departamentos.id AS departamento_id, departamentos.nome AS departamento_nome, SUM(tempo) AS tempo_extra
FROM rh.aprovacoes
LEFT JOIN rh.colaboradores ON colaboradores.id=aprovacoes.colaborador_id
LEFT JOIN rh.departamentos ON departamentos.id=colaboradores.departamento_id
WHERE (tipo = 'BH' OR tipo = 'HE') AND estado=1 AND YEAR(aprovacoes.`data`) = 2016 AND MONTH(aprovacoes.`data`) = 1
GROUP BY colaboradores.departamento_id, MONTH(`data`)
ORDER BY departamentos.nome ASC
        ) AS t1
LEFT JOIN (
SELECT YEAR(`data`) AS ano, MONTH(`data`) AS mes, departamentos.id AS departamento_id, departamentos.nome AS departamento_nome, SUM(ativo) AS tempo_ativo
FROM rh.processamento
LEFT JOIN rh.colaboradores ON colaboradores.id=processamento.colaborador_id
LEFT JOIN rh.departamentos ON departamentos.id=colaboradores.departamento_id
WHERE YEAR(processamento.`data`) = 2016 AND MONTH(processamento.`data`) = 1
GROUP BY colaboradores.departamento_id, MONTH(`data`)
        ) AS t2 ON t1.departamento_id = t2.departamento_id
ORDER BY departamento_nome ASC;

如果我不能获得任何数据,我想显示字段tempo_extra,tempo_ativo和volume_extra等于0。

0 个答案:

没有答案