Teradata-从一行创建两行
我需要使用SQL创建两个键不同的行。我一直无法做到这一点 我有一个元素需要分成两部分Teradata-从一行创建两行,teradata,Teradata,我需要使用SQL创建两个键不同的行。我一直无法做到这一点 我有一个元素需要分成两部分 一般公认会计原则:只有在处于 公司A、B、C或D 法定:应始终等同于母公司(特殊处理) 由于case语句,我当前的代码无法工作。如果它位于A、B、C、D中,则它被正确分配,但第二个没有。它只会吸引其他公司 SELECT CASE WHEN (AB.DATA_ELEMENT_BUSINESS_NME = 'Special Handling' AND AB.UNIT_COMPANY_NME IN
- 一般公认会计原则:只有在处于 公司A、B、C或D
- 法定:应始终等同于母公司(特殊处理)
SELECT
CASE
WHEN (AB.DATA_ELEMENT_BUSINESS_NME = 'Special Handling' AND AB.UNIT_COMPANY_NME IN ('A','B','C','D')) THEN 'GAAP Special Handling'
WHEN AB.DATA_ELEMENT_BUSINESS_NME = 'Special Handling' THEN 'Statutory Special Handling'
ELSE AB.DATA_ELEMENT_BUSINESS_NME
END AS DATA_ELEMENT_BUSINESS_NME,
sum(AB.DATA_ELEMENT_AMT) as DATA_ELEMENT_AMT
FROM
有什么建议吗
更新
数据输入:特殊处理-3727286.720000
数据输出:GAAP特殊处理-3727286.720000
法定特殊处理-3727286.720000对于单个输入记录,您需要两个输出记录。这里您缺少的基本思想是,您在其中输入了多少逻辑,像这样的单个查询将为您提供单个输入记录的单个输出记录 你需要的是一个联盟:
SELECT
'GAAP Special Handling' AS DATA_ELEMENT_BUSINESS_NME,
sum(AB.DATA_ELEMENT_AMT) as DATA_ELEMENT_AMT
FROM YOUR_TABLE
WHERE
AB.DATA_ELEMENT_BUSINESS_NME = 'Special Handling' AND
AB.UNIT_COMPANY_NME IN ('A','B','C','D')
UNION ALL
SELECT
CASE WHEN AB.DATA_ELEMENT_BUSINESS_NME = 'Special Handling'
THEN 'Statutory Special Handling'
ELSE AB.DATA_ELEMENT_BUSINESS_NME
END AS DATA_ELEMENT_BUSINESS_NME,
sum(AB.DATA_ELEMENT_AMT) as DATA_ELEMENT_AMT
FROM YOUR_TABLE
你需要详细说明你的要求,我觉得你的案子没问题。您能否显示一些示例数据和预期结果?CASE语句在满足第一个条件时停止处理。您需要提供比目前更多的示例详细信息数据。最好使用
UNION ALL
以避免不同的处理。