Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 没有显示所有结果_Mysql_Sql - Fatal编程技术网

Mysql 没有显示所有结果

Mysql 没有显示所有结果,mysql,sql,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

我试图从所有合作者那里获得某个月的数据。问题是,如果没有某个部门当月的数据,我就不会与该部门发生争执

这就是我正在努力解决的问题

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_ative和volume_extra等于0。

左连接时,将右侧表的条件放在ON子句中,以获得真正的左连接行为。(在WHERE中时,返回常规内部联接结果。)不理解。你能告诉我怎么做吗?
tempo\u extra
列在
t1
中,而
tempo\u ative
列在
t2
中。如果您想以任何方式显示它们,那么您可能需要在
mysql
中使用
full-join
或其等效项。我认为在mysql中没有full-join或等效项。如果我显示此查询,可能会更容易<代码>选择colaboradores.nome作为colaborador_nome,SUM(tempo)作为tempo_extra从右侧aprovaces左侧加入右侧aprovaces.colaboradores_id=colaboradores.id其中(tipo='BH'或tipo='HE')和estado=1和年份(aprovaces.数据
)=2016和月份(aprovaces.
数据
)=1组按colaboradores.id,年份(
data
)、月份(
data
)colaboradores.nome ASC;
我想用
tempo\u extra
null显示所有现有的
colaborador\u nome
订单,如果
aprovaces
表格没有该
colaborador\u id