当一行ID无效时,它不会显示cc_type,但我需要获取那些无效行的cc_type。
CASE WHEN CC_TYPE = 'Credit' OR Voided = 'Yes' THEN 'Credit'
WHEN CC_TYPE = 'Debit OR Voided = 'Yes' THEN 'Debit'
END
显然,这种方法不起作用。第3行将被视为信用,因为它满足无效的条件='是'。
我的逻辑是,如果ID和Name相同,则将CC_Type值附加到Voided行,但我不知道如何使其工作。
由于
答案 0 :(得分:1)
这对我有用:
create table result as
select a.id,a.name,b.cc_type,a.voided
from
(select id, name,voided from table1) as a
inner join
(select distinct id, cc_type from table1 where cc_type ne "") as b
on a.id = b.id;
quit;
答案 1 :(得分:1)
您可以使用窗口功能:
SELECT
id,
Name,
MAX(CC_Type) OVER (PARTITION BY id, name) AS CC_Type,
Voided
FROM
yourtable
答案 2 :(得分:1)
看起来您想要更新表格。这里的关键思想是你可以使用自己作为源来更新表。
UPDATE table1
SET table1.CC_Type = s.CC_Type
FROM table1 AS s
WHERE s.id = table1.id
AND s.name = table1.name
AND table1.Voided = 'Yes'
AND s.CC_Type <> ''