如何使用sql将两个不同的列数据显示为一列?

时间:2018-07-18 13:41:46

标签: sql pivot

我遇到一种情况,我试图并排显示产品的两年销售数据。在这一点上,我还需要在其中展示其多样性。

这里的问题是,我们在不同的星期有不同的品种。要求同时显示在同一列中,这不会影响销售数量。

这是下面的示例:

fy   fw fp prod   variety      salesamount
2016 1   1  Nike  Shoes          50$ 
2015 1   1  Nike  Hat            20$ 

我需要将其显示如下:

fy   fw fp prod   variety      salesamount    salesamount
2016  1 1   Nike  Shoes, hat          50$           20$ 

如果品种相同,则应显示一个名称。

你能给我怎么做吗?

1 个答案:

答案 0 :(得分:0)

为什么您将variety放在一列中,而价格放在另一列中?

我怀疑这样的事情可能会满足您的要求:

select max(fy) as fy, fw, fp, prod,
       max(case when fy = 2016 then variety end) as variety_2016,
       max(case when fy = 2015 then variety end) as variety_2015,
       max(case when fy = 2016 then salesamount end) as salesamount_2016,
       max(case when fy = 2015 then salesamount end) as salesamount_2015
from t
where fy in (2015, 2016)
group by fw, fp, prod