【发布时间】:2019-12-26 05:45:27
【问题描述】:
表:LABORCRAFTRATE:它有两个 cloumns
LABORCODE CRAFT
--------- ---------
SP51894 Replace
SP51894 Repair
SP51894 Connect
SP51894 MET1
表格:PERSON:5 列
PERSONID LOCATION STATUS FIRSTNAME LASTNAME
-------- -------- ------ --------- ---------
SP51894 Delhi ACTIVE Smita Patil
所需输出:7 列
PERSONID LOCATION STATUS FIRSTNAME LASTNAME Connection Replacement
-------- -------- ------ --------- -------- ---------- ------------
SP51894 Delhi ACTIVE Smita Patil Yes Yes
我的查询:
select distinct
person.personid, person.location, person.status, person.firstname, person.lastname,
case when (laborcraftrate.craft = 'CONNECT') then 'Yes' else null end as connection,
case when (laborcraftrate.craft = 'REPLACE') then 'Yes' else null end as replacement
from maximo.person, maximo.laborcraftrate
where ((person.personid like '%PM02056%'))
and person.personid= laborcraftrate.laborcode and person.status in ('ACTIVE','INACTIVE')
and laborcraftrate.craft in ('CONNECT','REPLACE')
group by person.personid, person.location, person.status, person.firstname, person.lastname, laborcraftrate.craft;
此查询返回两行:
PERSONID LOCATION STATUS FIRSTNAME LASTNAME Connection Replacement
-------- -------- ------ --------- -------- ---------- ------------
SP51894 Delhi ACTIVE Smita Patil Yes
SP51894 Delhi ACTIVE Smita Patil Yes
如何获得一个 Personid 的单行输出? Distinct 在 BIRT 中不起作用.. :(
【问题讨论】:
-
顺便说一下,只需要
in表达式周围的括号。其余的什么都不做。 -
除了Barbaros Özhan提出的解决方案外,另一种可能是调整您的解决方案,并在CASE中的laborcraftrate表上进行子查询,而不是加入两个表