首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分组依据,如果相似数据组中的一个值为null,则更改该值

分组依据,如果相似数据组中的一个值为null,则更改该值
EN

Stack Overflow用户
提问于 2019-07-17 00:32:20
回答 1查看 22关注 0票数 0

问题:有两列。Column1(任务)和column2(用户)。列1可能有一些类似的数据(任务),列2可能有true和false,这取决于用户是否被分配到该任务。

我想要的是,在第一列中,相同的任务需要首先进行分组,并检查用户是否被分配到所有这些相同的任务,如果其中一个任务是空的,那么它应该返回false。

example : Table 

Value	                              |PrimaryOwnerId
_______________________________________________________________________
EVP-RP&P	                          |  null
Execution Coordinator	                  |  null
Execution Coordinator	                  |  2
Inspection Lead	                          |  null
Instrument, Electrical, and Analyzer      |  null
Logistics	                          |  1
Logistics	                          |  1
Operations	                          |  null
Planning	                          |  4

Output table should look like :

Value	                              |PrimaryOwnerId
_______________________________________________________________________
EVP-RP&P	                          |  False
Execution Coordinator	                  |  False
Inspection Lead	                          |  False
Instrument, Electrical, and Analyzer      |  False
Logistics	                          |  True
Operations	                          |  False
Planning	                          |  True

我正在使用这个查询。

select CraftName AS value,
case 
   when PrimaryOwnerID is Null 
       Then 'true'
       else 'flase'
       End as PrimaryOwnerID
        FROM EventTasks AS et
                          INNER JOIN EventMileStones AS em ON em.EventMileStoneID = et.EventMileStoneID
                          INNER JOIN LocationTasks AS lt ON lt.LocationTaskID = et.LocationTaskID
                          INNER JOIN Crafts AS c ON c.ID = lt.CraftID
                     WHERE ProjectID = 4
                     group by CraftName, PrimaryOwnerID

有谁能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-17 00:44:32

尽管您没有提到数据库名称,但以下逻辑将在大多数数据库中工作-

SELECT Value,
CASE 
    WHEN SUM(CASE WHEN  PrimaryOwnerId IS NULL THEN 1 ELSE 0 END) > 0 THEN 'False' 
    ELSE 'True' 
END
FROM your_table
GROUP BY Value

根据您的逻辑,Planning应该得到"True“,因为没有将null分配给此值,但您在示例输出数据中显示了"False”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57061806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档