0

我正在研究 IBM DB2。我有一个查询:

select temp.dv,
    max(case when att.id=100 then  temp.en else '0' end) as cl,
    max(case when att.id=103 then  temp.en else null end) as mo,
    max(case when att.id=104 then  temp.en else null end) as do,
from temp left outer join att on att.id=temp.id where doc=100

我如何将其概括为 的所有值att.id

4

1 回答 1

0

如果需要对值进行透视,则可以将列名复制到 Excel 中并生成正确的语法。您还可以将 SQL 语句放入一个字符串中,然后运行它(在其他数据库中称为动态 SQL)。

如果您不需要它们旋转,那么您可以使用以下命令将结果放在单独的行中group by

select temp.dv,
       att.id,
       max(temp.en)
    max(case when att.id=104 then  temp.en else null end) as do,
from temp left outer join
     att
     on att.id=temp.id
where doc=100
group by temp.dv, att.id
于 2013-01-28T16:36:24.577 回答