Case Else来自不同表格的陈述

时间:2017-09-11 19:28:14

标签: object universe

我正在尝试根据某种类型的声明检索名称。看起来很容易,但它并不适合我。我正在使用2个主表claimexposure以及contactname表。每个claim可以有多个exposures,但每个exposure只能有一个claim。两个表都包含nameID字段 - claim.nameIDexposure.nameIDnameIDContactName表相关联。

Contact Name

ID Name
111 Jim
222 Bob
333 John
444 Sam
555 Walt

通常情况下,每个claim可以有多个exposures,而exposures上的claim可以具有相同的名称或不同的名称。名称ids位于exposure

The exposure.nameID joins ContactName.ID

Claim claim.nameID ExposureNo exposure.nameID Name
A null 1 111 Jim
A null 2 222 Bob
A null 3 333 John
B null 1 444 Sam
B null 2 444 Sam

工人赔偿索赔是不同的。每个工人赔偿要求可以有多次曝光,但所有曝光都具有相同的名称。由于索赔上的曝光具有相同的名称,因此找到名称ID,而不是在曝光表上,而是在索赔表中找到。 Go figure ... claim.nameID加入ContactName.ID AS ClaimContactName。

Claim claim.nameID ExposureNo exposure.nameID Name
C 111 1 null Jim
C 111 2 null Jim
C 111 3 null Jim
D 555 1 null Walt
D 555 2 null Walt

我可以获取非工作人员claims的名称,并可以获取workers comp claims的名称。但是,当我将2个查询放在一起时,我没有得到任何结果。

Select
CASE WHEN @Select(Claim\Policy Type) = 'Workers'' Compensation' THEN
CASE WHEN ClaimContact.Name IS NULL AND ClaimContact.Name.FirstName IS NULL THEN ClaimContact.LastName
WHEN ClaimContact.Name IS NOT NULL THEN ClaimContact.Name
ELSE ClaimContact.FirstName + Space(1) + ClaimContact.LastName END
ELSE
CASE WHEN Contact.Name IS NULL AND Contact.FirstName IS NULL THEN Contact.LastName 
WHEN Contact.Name IS NOT NULL THEN Contact.Name
ELSE Contact.FirstName + Space(1) + Contact.LastName END
END

没有做太多这样的事情,但可以真正使用帮助解决这个问题。先感谢您。

1 个答案:

答案 0 :(得分:0)

这是针对使用信息设计工具的SAP Universe。我最终创建了一个派生表,该表完全满足了我的需求,包括一路学习新知识。