Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 姓。我们只使用第一个雇员的姓氏。员工姓名应为:'Carl&Jenny Malone'_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 姓。我们只使用第一个雇员的姓氏。员工姓名应为:'Carl&Jenny Malone'

Sql 姓。我们只使用第一个雇员的姓氏。员工姓名应为:'Carl&Jenny Malone',sql,sql-server,tsql,Sql,Sql Server,Tsql,正如您在我包含的示例查询中所注意到的,第二对夫妇不合适,因为它显示的是Sherry&John-Wayne,而不是John&Sherry-Wayne *编辑:以下是我在脚本中包含的查询结果: 请帮帮我。谢谢。我不确定我是否完全理解你的要求。但我修改了您的查询如下(添加了一个内部案例): 或者(在您给出其他规格的评论之后)这个其他(我只修改了WHERE条件): select p.FirstName + ' ' + p.LastName as Employee, spouse.First

正如您在我包含的示例查询中所注意到的,第二对夫妇不合适,因为它显示的是
Sherry&John-Wayne
,而不是
John&Sherry-Wayne

*编辑:以下是我在脚本中包含的查询结果:


请帮帮我。谢谢。

我不确定我是否完全理解你的要求。但我修改了您的查询如下(添加了一个内部案例):

或者(在您给出其他规格的评论之后)这个其他(我只修改了WHERE条件):

select 
    p.FirstName  + ' ' + p.LastName as Employee, spouse.FirstName + ' ' + spouse.LastName as Spouse, p.EmployedOn as pEmp, spouse.EmployedOn as sEmp
    , o.PersonNode.GetAncestor(1) as pAncestor, @SupervisorNode as Ancestor, so.PersonNode.GetAncestor(1) as sAncestor,
    CASE when spouse.PersonID is not null THEN p.FirstName + ' & ' + spouse.FirstName +  ' ' + p.LastName
        else p.FirstName + ' ' + p.LastName END as EmployeeName
    --spouse.PersonID as SpouseID,
from #Person p
left join #PersonOrg o on p.PersonID = o.PersonID
left join #PersonRelationship pr on p.PersonID = pr.PersonID
left join #Person spouse on pr.RelatedPersonID = spouse.PersonID
left join #PersonOrg so on spouse.PersonID = so.PersonID

WHERE ((o.PersonNode.GetAncestor(1) = @SupervisorNode  and (p.EmployedOn < spouse.EmployedOn OR spouse.PersonID is null))
        )
        OR ( so.PersonNode.GetAncestor(1) <> @SupervisorNode and p.EmployedOn >= spouse.EmployedOn  )
ORDER BY p.ID

请,您能添加所需的结果吗?编辑了该问题。我希望避免嵌套案例,因为在成功获取正确名称后,我需要执行更多条件,以及使用嵌套案例(我已经知道如何使用嵌套案例),这就是为什么我没有将其包含在问题中的原因。因此,额外的嵌套案例会影响性能。不管怎样,谢谢。搞定了!^^,谢谢只需将
=
条件更改为
(不要认为会有重复的日期时间)。
CASE when spouse.PersonID is not null 
        THEN CASE WHEN o.PersonNode.GetAncestor(1)= @SupervisorNode  THEN p.FirstName + ' & ' + spouse.FirstName +  ' ' + p.LastName
                  ELSE spouse.FirstName + ' & ' + p.FirstName +  ' ' + p.LastName 
              END
        else p.FirstName + ' ' + p.LastName END as EmployeeName
select 
    p.FirstName  + ' ' + p.LastName as Employee, spouse.FirstName + ' ' + spouse.LastName as Spouse, p.EmployedOn as pEmp, spouse.EmployedOn as sEmp
    , o.PersonNode.GetAncestor(1) as pAncestor, @SupervisorNode as Ancestor, so.PersonNode.GetAncestor(1) as sAncestor,
    CASE when spouse.PersonID is not null THEN p.FirstName + ' & ' + spouse.FirstName +  ' ' + p.LastName
        else p.FirstName + ' ' + p.LastName END as EmployeeName
    --spouse.PersonID as SpouseID,
from #Person p
left join #PersonOrg o on p.PersonID = o.PersonID
left join #PersonRelationship pr on p.PersonID = pr.PersonID
left join #Person spouse on pr.RelatedPersonID = spouse.PersonID
left join #PersonOrg so on spouse.PersonID = so.PersonID

WHERE ((o.PersonNode.GetAncestor(1) = @SupervisorNode  and (p.EmployedOn < spouse.EmployedOn OR spouse.PersonID is null))
        )
        OR ( so.PersonNode.GetAncestor(1) <> @SupervisorNode and p.EmployedOn >= spouse.EmployedOn  )
ORDER BY p.ID
Employee                                 Spouse                                   pEmp                    sEmp                    EmployeeName
---------------------------------------- ---------------------------------------- ----------------------- ----------------------- ----------------------------------------
John Doe                                 Jane Doe                                 2013-01-01 00:00:00.000 2013-01-02 00:00:00.000 John & Jane Doe
Sherry Wayne                             John Wayne                               2012-01-12 00:00:00.000 2013-01-01 00:00:00.000 John & Sherry Wayne
Carl Malone                              Jenny Earhart                            2013-01-01 00:00:00.000 2013-02-01 00:00:00.000 Carl & Jenny Malone
Tom No Wife                              NULL                                     2013-01-01 00:00:00.000 NULL                    Tom No Wife
Cherry Irrelevant                        NULL                                     2013-01-01 00:00:00.000 NULL                    Cherry Irrelevant
Eric Morales                             NULL                                     2013-01-01 00:00:00.000 NULL                    Eric Morales
Sheldon Marley                           NULL                                     2013-01-01 00:00:00.000 NULL                    Sheldon Marley