查询表:复杂联接

查克·诺里斯

我有这个查询,当table上有匹配的行时,它做得很好Tiempo

问题在于,我真正需要查看的是中Tiempo也存在的不匹配行Usuario

SELECT u.Id, t.empleado, CAST(MONTH(t.fecha) AS VARCHAR(2)) AS MonthNumber, CAST(YEAR(t.fecha) AS VARCHAR(4)) AS YearNumber, SUM(t.horas) AS Horas
FROM Usuario u
INNER JOIN Tiempo t ON u.username = t.empleado
WHERE fecha >= '2016-08-01' and fecha <= '2016-08-31'
GROUP BY u.id, t.empleado, CAST(MONTH(t.fecha) AS VARCHAR(2)), CAST(YEAR(t.fecha) AS VARCHAR(4))

这是输出:

Id  empleado    MonthNumber YearNumber  Horas
86  username1   8           2016        96
95  username2   8           2016        80
99  username3   8           2016        47
102 username4   8           2016        85

这就是我要寻找的:

Id  empleado    MonthNumber YearNumber  Horas
86  username1   8           2016        96
95  username2   8           2016        80
99  username3   8           2016        47
102 username4   8           2016        85
102 username5   8           2016        null (or 0)

编辑:样本数据:下载

蒂姆·比格莱森(Tim Biegeleisen)

假设表中存在缺少行的数据,则执行aLEFT JOIN而不是INNER JOIN

SELECT u.Id,
       COALESCE(t.empleado, 'NA')
       COALESCE(CAST(MONTH(t.fecha) AS VARCHAR(2)), 'NA') AS MonthNumber,
       COALESCE(CAST(YEAR(t.fecha) AS VARCHAR(4)), 'NA') AS YearNumber,
       SUM(t.horas) AS Horas
FROM Usuario u
LEFT OUTER JOIN Tiempo t
    ON u.username = t.empleado AND
       fecha >= '2016-08-01' AND
       fecha <= '2016-08-31'
GROUP BY u.id,
         t.empleado,
         CAST(MONTH(t.fecha) AS VARCHAR(2)),
         CAST(YEAR(t.fecha) AS VARCHAR(4))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询表:复杂联接

来自分类Dev

通过联接表进行复杂的SQL查询

来自分类Dev

交叉联接复杂查询

来自分类Dev

复杂的SQL查询-联接表中的字段总和

来自分类Dev

ebean中的复杂查询联接

来自分类Dev

Linq内部联接复杂查询

来自分类Dev

SQL表联接查询

来自分类Dev

卡在复杂的MySQL查询语法中(将表本身联接吗?)

来自分类Dev

复杂联接的MySQL查询上的Override字段

来自分类Dev

laravel中左联接中的复杂查询

来自分类Dev

MySQL中复杂的联接和MAX()查询

来自分类Dev

MariaDB:带有联接的复杂查询

来自分类Dev

复杂的两张表联接

来自分类Dev

sql查询联接条件与联接表

来自分类Dev

复杂联接(联接联接)

来自分类Dev

复杂联接(联接联接)

来自分类Dev

R基于ID和Date的联接表,复杂的滚动联接?

来自分类Dev

SQL查询联接多个表

来自分类Dev

laravel查询或联接表部分

来自分类Dev

PostgreSQL查询和联接表

来自分类Dev

JPA通过查询联接表

来自分类Dev

在ColdFusion查询中联接表

来自分类Dev

复杂的mySQL两表查询

来自分类Dev

使用复杂的查询选择表

来自分类Dev

复杂表的SQL递归查询

来自分类Dev

Magento联接查询使用3表查询

来自分类Dev

SQL查询-表之间的复杂查询

来自分类Dev

如何强制EF使用联接而不是拆分复杂的查询?

来自分类Dev

对复杂的联接查询在ORACLE中应用OFFSET和LIMIT?