让一个值出现在多行上

问题描述 投票:0回答:1

我正在尝试编写 SQL 代码来获取出现在一行上的值出现在包含相似值的所有行上。下面是我当前拥有的示例,但需要一种方法来获取“批次状态”列以匹配同一批次 ID 下的所有行

批次ID 测试ID 状态 批次状态
267 174 成功
267 175 成功
267 176 失败 失败
268 177 成功
268 178 成功
268 179 成功 成功

我需要它的样子:

批次ID 测试ID 状态 批次状态
267 174 成功 失败
267 175 成功 失败
267 176 失败 失败
268 177 成功 成功
268 178 成功 成功
268 179 成功 成功
sql powerbi
1个回答
0
投票

这是一些使用 CTE 的 SQL(我假设您正在使用

sql server
给定您的
powerbi
标签):

    WITH BatchStatus AS (
    SELECT
        [Batch ID],
        CASE 
            WHEN MAX([Batch Status]) = 'FAIL' THEN 'FAIL'
            WHEN MAX([Batch Status]) = 'SUCCESS' THEN 'SUCCESS'
            ELSE NULL
        END AS NewBatchStatus
    FROM BatchDetails
    GROUP BY [Batch ID]
)
SELECT
    bd.[Batch ID],
    bd.[Test ID],
    bd.[Status],
    bs.NewBatchStatus AS [Batch Status]
FROM BatchDetails bd
JOIN BatchStatus bs
ON bd.[Batch ID] = bs.[Batch ID];

假设:

  • Sql Server 语法
  • 【批次状态】只有SUCCESS、FAIL、NULL
© www.soinside.com 2019 - 2024. All rights reserved.