SQL Server:如何加入记录不在另一个表中?

Joe Yan

我想显示员工的评估提交状态。

Appraisal_Record如果文件已提交,它将在表中添加一条记录

我该如何编写SQL来显示所有员工的所有评估期,即使他们尚未提交评估(无记录)。添加一列“状态”以指示状态,如果“ [评估记录]”表中没有记录,则“-已提交”和“未提交_提交” <-

我想在sql语句中使用一种情况来添加列... CASE何时xxx,然后“已提交”,否则“未提交”为状态

谢谢

以下是示例

桌子: StaffDB

+---+-----+
|SID|Name |
+---+-----+
|1  |Peter|
+---+-----+
|2  |John |
+---+-----+
|3  |Amy  |
+---+-----+

桌子: Appraisal Period

+--------+-----------------+
|PeriodID|PeriodDescription|
+--------+-----------------+
|1       |2012_Start_Term  |
+--------+-----------------+
|2       |2012_Mid_Term    |
+--------+-----------------+
|3       |2012_End_Term    |
+--------+-----------------+

桌子: Appraisal_Record

+--+---+--------+
|ID|SID|PeriodID|
+--+---+--------+
|1 |1  |1       |
+--+---+--------+
|2 |1  |2       |
+--+---+--------+
|3 |2  |3       |
+--+---+--------+

结果

+---+-----+--------+-----------------+-------------+
|SID|Name |PeriodID|PeriodDescription|Status       |
+---+-----+--------+-----------------+-------------+
|1  |Peter|1       |2012_Start_Term  |Submitted    |
+---+-----+--------+-----------------+-------------+
|1  |Peter|2       |2012_Mid_Term    |Submitted    |
+---+-----+--------+-----------------+-------------+
|1  |Peter|3       |2012_End_Term    |Not_Submitted|
+---+-----+--------+-----------------+-------------+
|2  |John |1       |2012_Start_Term  |Not_Submitted|
+---+-----+--------+-----------------+-------------+
|2  |John |2       |2012_Mid_Term    |Not_Submitted|
+---+-----+--------+-----------------+-------------+
|2  |John |3       |2012_End_Term    |Submitted    |
+---+-----+--------+-----------------+-------------+
|3  |Amy  |1       |2012_Start_Term  |Not_Submitted|
+---+-----+--------+-----------------+-------------+
|3  |Amy  |2       |2012_Mid_Term    |Not_Submitted|
+---+-----+--------+-----------------+-------------+
|3  |Amy  |3       |2012_End_Term    |Not_Submitted|
+---+-----+--------+-----------------+-------------+

感谢Kishore和Damien。

解决方案是:

select a.sid,a.name,b.periodid,b.perioddescription,
CASE WHEN c.ID IS NOT NULL then 'Submitted' ELSE 'Not_Submitted' as Status
from 
StaffDB a 
cross join 
[Appraisal Period] b
left join 
Appraisal_Record c on a.sid = c.sid and b.periodid =  c.periodid
Kishore

这是您要查找的(假设您的appraisal_record表中的status列)

select a.sid,a.name,b.periodid,b.perioddescription,c.status
from 
StaffDB a 
cross join 
[Appraisal Period] b
left join 
Appraisal_Record c on a.sid = c.sid and b.periodid =  c.periodid

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 2014 - 想要加入,但记录可能不在一个表或另一个表上

来自分类Dev

SQL-记录不在另一个表中

来自分类Dev

在主表中查找与SQL Server中另一个表中的记录匹配的记录

来自分类Dev

在一个表中查找不在另一个表中的行-SQL Server查询

来自分类Dev

SQL Server 查询不在另一个表中的位置

来自分类Dev

SQL Server 2008 R2:选择另一个表中存在的记录

来自分类Dev

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

来自分类Dev

SQL-从另一个表中获取一列以加入此查询

来自分类Dev

如何在SQL Server中将一个表中的特定行加到另一个表

来自分类Dev

Sql匹配另一个表中的id并加入

来自分类Dev

如何从SQL Server中的查询中排除另一个表?

来自分类Dev

如何根据SQL Server中的条件从另一个表添加新列

来自分类Dev

如何使用查询结果选择到SQL Server中的另一个表

来自分类Dev

如何将 CTE 查询与 SQL Server 2008 中的另一个表连接

来自分类Dev

如何从sql server 2017中的另一个表添加多列?

来自分类Dev

如何根据 SQL Server 中的另一个表列值限制插入到表?

来自分类Dev

如何使用另一个表中的记录作为列名来创建SQL表变量

来自分类Dev

如果所有记录都存在于SQL Server的另一个表中,则返回行列表

来自分类Dev

查找另一个表引用的 SQL 记录

来自分类Dev

如何在SQL Server中使用触发器将记录从一个表插入到另一个表?

来自分类Dev

将记录从一个表插入到另一个表,而不违反SQL Server数据库中的任何约束

来自分类Dev

SQL Server:选择记录,而不链接到另一个表

来自分类Dev

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

来自分类Dev

如何列出引用SQL Server中另一个表的某一行的所有表?

来自分类Dev

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

来自分类Dev

SQL甲骨文| 当它们与另一个表匹配时,如何从一个表中删除记录?

来自分类Dev

SQL-不存在时不从另一个表中检索记录

来自分类Dev

删除重复的记录,并在sql的另一个表中插入delete的ID

来自分类Dev

SQL维护另一个表中相关记录的最新计数

Related 相关文章

  1. 1

    SQL Server 2014 - 想要加入,但记录可能不在一个表或另一个表上

  2. 2

    SQL-记录不在另一个表中

  3. 3

    在主表中查找与SQL Server中另一个表中的记录匹配的记录

  4. 4

    在一个表中查找不在另一个表中的行-SQL Server查询

  5. 5

    SQL Server 查询不在另一个表中的位置

  6. 6

    SQL Server 2008 R2:选择另一个表中存在的记录

  7. 7

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

  8. 8

    SQL-从另一个表中获取一列以加入此查询

  9. 9

    如何在SQL Server中将一个表中的特定行加到另一个表

  10. 10

    Sql匹配另一个表中的id并加入

  11. 11

    如何从SQL Server中的查询中排除另一个表?

  12. 12

    如何根据SQL Server中的条件从另一个表添加新列

  13. 13

    如何使用查询结果选择到SQL Server中的另一个表

  14. 14

    如何将 CTE 查询与 SQL Server 2008 中的另一个表连接

  15. 15

    如何从sql server 2017中的另一个表添加多列?

  16. 16

    如何根据 SQL Server 中的另一个表列值限制插入到表?

  17. 17

    如何使用另一个表中的记录作为列名来创建SQL表变量

  18. 18

    如果所有记录都存在于SQL Server的另一个表中,则返回行列表

  19. 19

    查找另一个表引用的 SQL 记录

  20. 20

    如何在SQL Server中使用触发器将记录从一个表插入到另一个表?

  21. 21

    将记录从一个表插入到另一个表,而不违反SQL Server数据库中的任何约束

  22. 22

    SQL Server:选择记录,而不链接到另一个表

  23. 23

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

  24. 24

    如何列出引用SQL Server中另一个表的某一行的所有表?

  25. 25

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

  26. 26

    SQL甲骨文| 当它们与另一个表匹配时,如何从一个表中删除记录?

  27. 27

    SQL-不存在时不从另一个表中检索记录

  28. 28

    删除重复的记录,并在sql的另一个表中插入delete的ID

  29. 29

    SQL维护另一个表中相关记录的最新计数

热门标签

归档