2

这是示例“销售”数据表 在此处输入图像描述

这是所需的输出结果集 在此处输入图像描述


下面是将从该 SQL 语句生成的不想要的结果集的示例。

SELECT Vendor, SUM(Markdown), SUM(Regular), SUM(Promotion), SUM(Returned)
FROM sales
GROUP BY Vendor, Date

在此处输入图像描述


有没有办法只通过 SQL 获得所需的结果集?

我们在 IBM iSeries 上运行 SQL DB2 数据库。

我确实意识到这是尝试执行此操作的一种非常奇怪的方法……我们只是想找到一种方法来根据需要取回结果集,而无需通过代码对结果进行任何手动转换。

4

1 回答 1

6

你需要使用UNION语句

尝试,

SELECT Vendor, 'Markdown' as Type,  SUM(Markdown) as Amount 
FROM sales 
GROUP BY Vendor, Date

UNION

SELECT Vendor, 'Regular' as Type, SUM(Regular) as Amount  
FROM sales 
GROUP BY Vendor, Date

UNION

SELECT Vendor, 'Promotion' as Type, SUM(Promotion) as Amount 
FROM sales 
GROUP BY Vendor, Date

UNION

SELECT Vendor, 'Returned' as Type, SUM(Returned) as Amount 
FROM sales 
GROUP BY Vendor, Date
于 2013-01-30T22:49:46.050 回答