我有一个带有这些列的表EmployeeInformation
:
EmployeeInformationID
Essentia_ID
ADP_ID
SSN
FirstName
LastName
SupervisorOrVP
LocationNum
Primary
EmployeeActive
RecordActive
CreatedBy
CreateDate
ModifiedBy
ModifiedDate
每个员工只能有一个EmployeeInformationID
,但可以有多个ADP_ID
(我继承了这个数据库)。
因此ADP_ID
是唯一的,而EmployeeInformationID
不是唯一的。但是,应将1条记录标记为主记录。
我需要验证每个员工记录是否至少有一个记录被标记为主要记录。在进行一些计算并在其他表中创建其他记录之前,这将在一个经常使用的程序中完成。
执行此操作的好方法是什么?
答案 0 :(得分:0)
您可以通过查询执行此操作。以下是例外情况:
select EmployeeInformationID
from EmployeeInformation
group by EmployeeInformationID
having max(Primary) = 0;
假设Primary
是一个数值,取值为0和1。如果该字段具有不同的值,则可以使用类似的逻辑。
如果您要恰好一个这样的记录,则:
select EmployeeInformationID
from EmployeeInformation
group by EmployeeInformationID
having sum(Primary) = 1;
或者:
having sum(case when Primary = 1 then 1 else 0 end) = 1