Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
SQL Server比较两行以标识ID_Sql_Sql Server - Fatal编程技术网

SQL Server比较两行以标识ID

SQL Server比较两行以标识ID,sql,sql-server,Sql,Sql Server,这就是我要做的。 我有一列数据,是每个人的ID。我有第二列数据,这是刚刚主管的ID。我还有第三列数据,将ID标识为职员或教员 我需要将Supervisor列与ID列进行比较。当找到导师ID时,我需要在单独的列中将该行标识为教员导师的职员。如果该ID不在“主管”列中,则只需根据第三列的第二行将其标记为职员或教员即可 我有三列,分别是ID,Supervisor ID和Class Type 任何帮助都将不胜感激 这是我目前拥有的代码 select distinct ODS_PERSON.ID "Cie

这就是我要做的。 我有一列数据,是每个人的ID。我有第二列数据,这是刚刚主管的ID。我还有第三列数据,将ID标识为职员或教员

我需要将Supervisor列与ID列进行比较。当找到导师ID时,我需要在单独的列中将该行标识为教员导师的职员。如果该ID不在“主管”列中,则只需根据第三列的第二行将其标记为职员或教员即可

我有三列,分别是ID,Supervisor ID和Class Type

任何帮助都将不胜感激

这是我目前拥有的代码

select distinct ODS_PERSON.ID "Cient_ID",
       ODS_PERSON.LAST_NAME "Last_Name",
       CASE
       WHEN H17_PERSON.NICKNAME  is not null
       THEN H17_PERSON.NICKNAME
       ELSE ODS_PERSON.FIRST_NAME
       END "First_Name",
       H17_PERSON.H17_PER_USERNAME + '@highpoint.edu' "Email",
       CASE
       WHEN ODS_HRPER.HRP_EFFECT_TERM_DATE  is null
       THEN '1'
       ELSE '0'
       END "User_Status",
       CASE
       WHEN SPT_POSITION.POS_CLASS = 'FACL' AND (ODS_PERSON.ID = SPT_PERPOS.PERPOS_SUPERVISOR_HRP_ID)
       THEN 'FACSUP'
       ELSE 'NOPE'
       END "Employee_Type",
       SPT_PERPOS.PERPOS_SUPERVISOR_HRP_ID "Manager",
       SPT_POSITION.DEPARTMENT_DESC "Department",
       SPT_PERPOS.PERPOS_POS_SHORT_TITLE "Position_Title",
       SPT_POSITION.POS_CLASS "Position_Class"
  from ( ( ( ( ( SPT_PERPOSWG SPT_PERPOSWG left join ODS_HRPER ODS_HRPER on SPT_PERPOSWG.PPWG_HRP_ID = ODS_HRPER.HRPER_ID ) left join SPT_PERPOS SPT_PERPOS on SPT_PERPOSWG.PPWG_HRP_ID = SPT_PERPOS.PERPOS_HRP_ID ) left join SPT_PERSTAT SPT_PERSTAT on SPT_PERPOSWG.PPWG_HRP_ID = SPT_PERSTAT.PERSTAT_HRP_ID ) left join ODS_PERSON ODS_PERSON on SPT_PERPOSWG.PPWG_HRP_ID = ODS_PERSON.ID ) left join SPT_POSITION SPT_POSITION on SPT_PERPOS.PERPOS_POSITION_ID = SPT_POSITION.POSITION_ID ) left join H17_PERSON H17_PERSON on SPT_PERPOSWG.PPWG_HRP_ID = H17_PERSON.ID
 where ODS_HRPER.HRP_EFFECT_TERM_DATE is null
       and SPT_PERPOS.PERPOS_END_DATE is null
 order by ODS_PERSON.ID
不确定这是否是你要找的。将来,了解涉及多少表,以及是否可以直接比较每列中的数据类型,或者是否必须强制转换数据类型,都会很有帮助

您可能还想输入获取信息是否需要连接条件,以及表将在哪些列上连接


希望这有帮助

我已经添加了我当前使用的代码。对不起,以前没有数据。我正在尝试使用我标识的三列为type创建新列以替换employee type列。此外,ID列中的每个人都在Manager列中为他们分配了主管ID。我尝试了该案例,但它看起来是ID列和Manager列的一对一。一个人不能做自己的经理,所以没有为我工作。
SELECT ID, Supervisor_ID, Class_Type,
CASE
WHEN SuperVisor_ID is null and Class_Type is not null THEN Class_Type
WHEN (SuperVisor_ID = ID or SuperVisor_ID is not null) THEN 'Supervisor'
END
from tableID