如何在SQL中基于订单ID生成列

f鱼

我有两个表:customerTableorderTable那个如下所示。我需要order动态生成列。

客户表

custId CustName
01     Suresh
02     Ramesh

订单表

custId  OrderId 
01      011
01      012

需要像这样的输出:

custId Order1 Order2
01     011    012

在这里,如果每个客户的订单是多次,则将动态添加列。

如果custId = 01有011,012,013,014 ......有很多命令,那么表将像

custId order1  order2 order3 order4 order5 order6 ...... many oder N columns 
01     011       012   013   014    015    06     ....... 0N..   
古尔温德·辛格

像这样动态地执行此操作:

declare @sql as nvarchar(max)
declare @cols as nvarchar(max)

set @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.OrderId)
            FROM OrderTable c
            order by 1
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'');

set @sql = STUFF((SELECT ',' + QUOTENAME(OrderId) + ' as Order' + convert(varchar,row_number() over (order by OrderId))
            from (
                select distinct OrderId 
                FROM OrderTable
            ) t
            order by 1
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'');

set @sql = 'SELECT custId, ' + @sql + ' from 
            (
                select *
                from OrderTable
           ) x
            pivot 
            (
                 max(OrderId)
                for OrderId in (' + @cols + ')
            ) p '
exec(@sql)

产生:

在此处输入图片说明

这里要注意的是,由于列是根据透视结果中的OrderId对齐的,因此它对于一个custId可以正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在SQL Server中基于每个客户生成订单项的顺序ID

如何基于python中的行值生成id列?

如何在sql查询中列出订单?

如何在SQL Server中基于列求和多记录

如何为 SQL 中的列生成 ID 列?

基于客户ID的Woocommerce订单的SQL查询

如何基于两列中任一列的重复值生成唯一ID?

我如何在Woocommerce中获取最新的订单ID

如何在销售订单onclick中的自定义操作中获取选定的订单ID?

如何在R中基于用户ID和会话ID添加均值列?

如何在 SQL 中查询表以生成基于条件垂直堆叠列名的结果?

如何在BIML脚本中获取输出列的列表-基于列的生成

WooCommerce:如何在订单元数据对象中获取带有自定义 ID 的订单?

如何在WooCommerce中自动更新特定订单ID的订单状态

如何在Infusionsoft中通过订单ID获取订单详细信息

如何在Magento中获取订单的下一个订单ID

如何在SELECT查询中基于几个列添加计数器ID列

如何在SQL查询中添加订单

如何在SQL Server 2008查询中显示订单履行

如何在基于另一列的一列中累积SQL中的值?

如何在SELECT查询中包含“订单”或“索引”列?

Django:如何生成唯一的订单 ID

如何插入基于另一列(SQL)中的值设置唯一ID的列?

如何创建基于采购订单中字段选择显示销售订单ID的方法?销售订单参考已集成到采购中

如何在Postgres中基于INSERT RETURNING id进行SQL更新?

如何在SQL中的某一列中基于最大值返回多行

如何基于R中的聚合数据生成新ID

如何在NHibernate中自动生成ID

如何使用基于ID的SQL Server中的列获取行值