SQL如何在以下情况下联接两个表以获取记录?

老虎

付款方式

Year     Month       Division       Department   Payments_received_Count
------------------------------------------------------------------------
2016       1           Electric      dep1         2
2016       1           Electric      dep2         3
2015       1           Electric      dep1         1

Division             Department   
--------------------------------
Electric             Dep1                      
Electric             Dep2                 
Electric             Dep3        

如何联接表以获得以下结果?

Year     Month       Division       Department   Payments_received_Count
------------------------------------------------------------------------
2016       1           Electric      dep1         2
2016       1           Electric      dep2         3
2016       1           Electric      dep3         0
2015       1           Electric      dep1         1
2015       1           Electric      dep2         0
2015       1           Electric      dep3         0

因此,对于每一年和每个月,我都必须将付款表与部门表结合起来。请提出一种方法。

我知道CASE WHEN在这种情况下会有所帮助,但我一直找不到正确的方法。

CASE Payments_received_Count
     WHEN null THEN 0
     ELSE Payments_received_Count

谢谢

戈登·利诺夫

您需要部门/部门和年/月的组合。首先,使用生成行cross join然后使用left join来获取值:

select ym.year, ym.month, d.division, d.department,
       coalesce(Payments_received_Count, 0) as Payments_received_Count
from divisions d cross join
     (select distinct year, month from payments) ym left join
     payments p
     on d.division = p.division and d.department = p.department and
        ym.year = p.year and ym.month = p.month
order by year desc, month desc, division, department;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL中列不匹配的情况下联接两个表

来自分类Dev

如何在可能不会发生的情况下联接两个表?

来自分类Dev

在Oracle中没有相同键的情况下联接两个表

来自分类Dev

MySQL如何在没有公用键的情况下联接3个表

来自分类Dev

如何在没有多个列表的情况下联接3个表?

来自分类Dev

在没有唯一键的情况下联接来自两个表的数据

来自分类Dev

我们可以在没有任何公共密钥的情况下联接两个表吗?

来自分类Dev

如何在不使用公共列的情况下使用SQL联接两个以上的表

来自分类Dev

在没有获取不匹配记录的情况下联接表

来自分类Dev

在没有键的情况下联接两个相等的数据集

来自分类Dev

在2个条件下联接两个表

来自分类Dev

如何在没有公共密钥的情况下联接2个表并随机生成第二个表的行

来自分类Dev

在以下情况下如何获取正确的记录器行号

来自分类Dev

基于Spark中的功能在没有公共密钥的情况下联接两个RDD

来自分类Dev

如何在不使用distinct和union的情况下在两个表之间返回唯一记录?

来自分类Dev

如何在IF条件下联接5个表

来自分类Dev

如何在IF条件下联接5个表

来自分类Dev

在以下情况下如何获取数组的sizeof:

来自分类Dev

如何在两个日期之间从Sql中的表中获取记录

来自分类Dev

获取两个联接表中的相关记录数

来自分类Dev

为什么在以下情况下,我在SQL Server上具有两个条件的查询比在单个条件下的查询要快[可以改写]

来自分类Dev

如何在不交叉的情况下合并两个左联接?

来自分类Dev

如何联接两个表以获得以下结果?

来自分类Dev

熊猫如何在以下情况下进行分组

来自分类Dev

如何在以下情况下使用xsl:if?

来自分类Dev

如何在以下情况下快速使用枚举?

来自分类Dev

在不使用联接的情况下联接多个表

来自分类Dev

在以下情况下如何在SQL中应用条件聚合?

来自分类Dev

SQL Server:在以下情况下如何声明变量

Related 相关文章

  1. 1

    如何在SQL中列不匹配的情况下联接两个表

  2. 2

    如何在可能不会发生的情况下联接两个表?

  3. 3

    在Oracle中没有相同键的情况下联接两个表

  4. 4

    MySQL如何在没有公用键的情况下联接3个表

  5. 5

    如何在没有多个列表的情况下联接3个表?

  6. 6

    在没有唯一键的情况下联接来自两个表的数据

  7. 7

    我们可以在没有任何公共密钥的情况下联接两个表吗?

  8. 8

    如何在不使用公共列的情况下使用SQL联接两个以上的表

  9. 9

    在没有获取不匹配记录的情况下联接表

  10. 10

    在没有键的情况下联接两个相等的数据集

  11. 11

    在2个条件下联接两个表

  12. 12

    如何在没有公共密钥的情况下联接2个表并随机生成第二个表的行

  13. 13

    在以下情况下如何获取正确的记录器行号

  14. 14

    基于Spark中的功能在没有公共密钥的情况下联接两个RDD

  15. 15

    如何在不使用distinct和union的情况下在两个表之间返回唯一记录?

  16. 16

    如何在IF条件下联接5个表

  17. 17

    如何在IF条件下联接5个表

  18. 18

    在以下情况下如何获取数组的sizeof:

  19. 19

    如何在两个日期之间从Sql中的表中获取记录

  20. 20

    获取两个联接表中的相关记录数

  21. 21

    为什么在以下情况下,我在SQL Server上具有两个条件的查询比在单个条件下的查询要快[可以改写]

  22. 22

    如何在不交叉的情况下合并两个左联接?

  23. 23

    如何联接两个表以获得以下结果?

  24. 24

    熊猫如何在以下情况下进行分组

  25. 25

    如何在以下情况下使用xsl:if?

  26. 26

    如何在以下情况下快速使用枚举?

  27. 27

    在不使用联接的情况下联接多个表

  28. 28

    在以下情况下如何在SQL中应用条件聚合?

  29. 29

    SQL Server:在以下情况下如何声明变量

热门标签

归档