如何在查询中从另一个表中获取记录?

地牢

我有两张桌子tblEmployeetblTarget. 这是我的 SQL 查询:

select EmpCode,E.TM_Name, CurrentTarget, CreatedDate,RankOrder,A.PreviousTarget from(
select EmpCode, CurrentTarget, CreatedDate,RankOrder,T.PreviousTarget from (
    Select
        EmpCode, CurrentTarget, CreatedDate,PreviousTarget,
        Rank() over (partition by EmpCode order by CreatedDate desc) RankOrder
    From tbl_Target
) T WHERE RankOrder=1)A
left join  tblEmployee E on A.EmpCode=E.TM_Emp_Id   

这就是我得到的,它是完美的。

EmpCode        TM_Name         CurrentTarget CreatedDate             RankOrder     PreviousTarget
-------------- --------------- ------------- ----------------------- ------------- --------------
20078          kaul            60            2018-07-11 05:05:03.687 1             50
56042          Bob             40            2018-07-11 05:05:03.687 1             20
56079          Alice           30            2018-07-11 05:05:03.703 1             30
56080          Sikon           50            2018-07-11 05:05:03.703 1             40
56094          Ssohy           35            2018-07-11 05:05:03.703 1             20

我只得到那些存在于tblTarget. 而没有目标的员工不显示。虽然我希望它们以 0CurrentTarget和 0显示PreviousTarget我想要这样的输出:

EmpCode        TM_Name         CurrentTarget CreatedDate             RankOrder     PreviousTarget
-------------- --------------- ------------- ----------------------- ------------- --------------
20078          kaul            60            2018-07-11 05:05:03.687 1             50
56042          Bob             40            2018-07-11 05:05:03.687 1             20
56079          Alice           30            2018-07-11 05:05:03.703 1             30
56080          Sikon           50            2018-07-11 05:05:03.703 1             40
56094          Ssohy           35            2018-07-11 05:05:03.703 1             20
101            Joe             0             2018-08-12 05:05:03.687 1             0
102            John            0             2018-08-12 05:05:03.687 1             0
103            Sid             0             2018-08-12 05:05:03.687 1             0
104            Manous          0             2018-08-12 05:05:03.687 1             0

我怎么做?

里格塔

您需要更改left-join. 您需要所有员工,即使是那些在目标中没有匹配行的员工,因此您可以切换表格的顺序并使Employee表格成为左边表格(我在下面的代码中做了),或者您将联接更改为一个right join

select EmpCode, e.TM_Name, isnull(CurrentTarget, 0) CurrentTarget, CreatedDate, RankOrder, isnull(A.PreviousTarget, 0) PreviousTarget
from tblEmployee e 
               left join 
                         (
                             select EmpCode, CurrentTarget, CreatedDate,RankOrder,T.PreviousTarget 
                             from (
                                      Select EmpCode, CurrentTarget, CreatedDate,PreviousTarget, Rank() over (partition by EmpCode order by CreatedDate desc) RankOrder
                                      From tbl_Target
                                  ) T WHERE RankOrder=1
                         ) A on A.empCode = e.tm_emp_id

当显示 CurrentTarget 和 PreviousTarget 时,由于它们将NULL用于没有目标的员工,您可以使用ISNULL()函数并返回 0。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在子查询聚合中的最近时间记录的另一个表中查找记录

来自分类Dev

在oracle中查询以从一个表中获取多个记录并输入另一个表

来自分类Dev

如何在winforms中通过c#从一个表中获取所有记录并将其保存在另一个表中?

来自分类Dev

如何查询另一个表中的上一条记录?

来自分类Dev

如何从另一个表中的列日期之间获取一个表中的所有记录

来自分类Dev

如何更新另一个表中的记录

来自分类Dev

我如何获取另一个表中的记录(SQL)

来自分类Dev

如何获取一个MySql表而不是另一个MySql表中存在的记录

来自分类Dev

如何从一个表中获取不在另一个表字段中的记录 (3)

来自分类Dev

如何在查询中包括另一个表中的列?

来自分类Dev

如何在另一个表中查找缺少属性 ID 的记录 ID

来自分类Dev

如何修改此SQL查询以获取位于另一个表中的信息?

来自分类Dev

MySQL从一个表中查询最新记录,但从另一个表中查询顺序

来自分类Dev

如何在另一个更新查询中更新新表?

来自分类Dev

如何在查询Cakephp中包含另一个表

来自分类Dev

使用PHP,如何在另一个表中获取相应的列?

来自分类Dev

从另一个表中获取没有记录的记录

来自分类Dev

如何从一个表中获取价值和另一个值的阵列中的一个MySQL查询联接表?

来自分类Dev

从另一个表更新表中的记录

来自分类Dev

如何在cakephp 3.6中从一个表中选择所有记录并从另一个表中选择一些记录

来自分类Dev

如何基于另一个表中的两个日期字段获取一个表中的记录数

来自分类Dev

SQL:如何根据另一个表中的值查询一个表中是否存在记录

来自分类Dev

我如何从一个表中的两个查询中获取公用值并将其与MySql中的另一个表联接?

来自分类Dev

通过外键在Entity Framework 6中的另一个表中获取记录

来自分类Dev

从同一查询中的另一个表中获取信息

来自分类Dev

如何在Terraform中获取在另一个模块中创建的LB名称(用于创建DNS记录)

来自分类Dev

MySQL查询可根据另一个表中的记录将记录插入表中

来自分类Dev

SQL查询-从一个表中选择全部,在另一个表中匹配记录

来自分类Dev

如何在更新 MySQL 中的第三个表时将多个记录从一个表插入另一个表

Related 相关文章

  1. 1

    如何在子查询聚合中的最近时间记录的另一个表中查找记录

  2. 2

    在oracle中查询以从一个表中获取多个记录并输入另一个表

  3. 3

    如何在winforms中通过c#从一个表中获取所有记录并将其保存在另一个表中?

  4. 4

    如何查询另一个表中的上一条记录?

  5. 5

    如何从另一个表中的列日期之间获取一个表中的所有记录

  6. 6

    如何更新另一个表中的记录

  7. 7

    我如何获取另一个表中的记录(SQL)

  8. 8

    如何获取一个MySql表而不是另一个MySql表中存在的记录

  9. 9

    如何从一个表中获取不在另一个表字段中的记录 (3)

  10. 10

    如何在查询中包括另一个表中的列?

  11. 11

    如何在另一个表中查找缺少属性 ID 的记录 ID

  12. 12

    如何修改此SQL查询以获取位于另一个表中的信息?

  13. 13

    MySQL从一个表中查询最新记录,但从另一个表中查询顺序

  14. 14

    如何在另一个更新查询中更新新表?

  15. 15

    如何在查询Cakephp中包含另一个表

  16. 16

    使用PHP,如何在另一个表中获取相应的列?

  17. 17

    从另一个表中获取没有记录的记录

  18. 18

    如何从一个表中获取价值和另一个值的阵列中的一个MySQL查询联接表?

  19. 19

    从另一个表更新表中的记录

  20. 20

    如何在cakephp 3.6中从一个表中选择所有记录并从另一个表中选择一些记录

  21. 21

    如何基于另一个表中的两个日期字段获取一个表中的记录数

  22. 22

    SQL:如何根据另一个表中的值查询一个表中是否存在记录

  23. 23

    我如何从一个表中的两个查询中获取公用值并将其与MySql中的另一个表联接?

  24. 24

    通过外键在Entity Framework 6中的另一个表中获取记录

  25. 25

    从同一查询中的另一个表中获取信息

  26. 26

    如何在Terraform中获取在另一个模块中创建的LB名称(用于创建DNS记录)

  27. 27

    MySQL查询可根据另一个表中的记录将记录插入表中

  28. 28

    SQL查询-从一个表中选择全部,在另一个表中匹配记录

  29. 29

    如何在更新 MySQL 中的第三个表时将多个记录从一个表插入另一个表

热门标签

归档