SQL Server使用重复的列名称将所有行选择为单个列

时间:2018-02-27 01:03:47

标签: sql sql-server

我有这个代码及其临时表,因此您可以运行它。

    create table #hourly_sales(
    id int identity(1,1),
    tenant_code varchar(13),
    hour_code int,
    net_sale_per_hour decimal(18,2)
    )


    insert into #hourly_sales(tenant_code,hour_code,net_sale_per_hour)
    values('1234567890000',1,200),('1234567890000',2,500),('1234567890000',3,400)


    select * from #hourly_sales

    drop table #hourly_sales    

这将为您提供此输出

  id          tenant_code   hour_code   net_sale_per_hour
  ----------- ------------- ----------- -------------------
  1           1234567890000 1           200.00
  2           1234567890000 2           500.00
  3           1234567890000 3           400.00

我希望他们全部选择一个列,租户代码分组,净销售总结

我的目标:

  id          tenant_code   hour_code   net_sale_per_hour hour_code net_sale_per_hour
  -----------------------------------------------------------------------
  1           1234567890000 1           200.00            2         500     

  hour_code net_sale_per_hour   total_net_sale
  -----------------------------------------------------------------------
  3         400                 

等等

我的尝试:

    declare @sum decimal(18,2);
    set @sum = (select sum(net_sale_per_hour) from #hourly_sales);

    select TOP 1
        id,
        tenant_code,
        hour_code,
        net_sale_per_hour,
        @sum
    from #hourly_sales

这就是我得到的所有我需要你的帮助。

1 个答案:

答案 0 :(得分:1)

有时如果您的列数有限,只有24,那么拼出它就更容易了。

sinon

enter image description here