LinoY93 2023-04-24 09:24 采纳率: 100%
浏览 71
已结题

SQL 分组 行列数据转换?

这应该是个SQL行列转换问题?

现有若干产品BOM信息(主件名称、元件名称、元件用量、元件分类)
想把【分类】作为列名查询 ,详见图示:

(适用需求:
1、主件信息量大 不能语句写定 要能通用
2、分类只会出现有限个 或A或B或C 可以直接写定;
3、列出的元件出现最多的行数 就是主件重复的行数;其余类别行数不足的 不能重复显示元件
9、附加^_^ 有没有分类也不写定的语句、这样分类字段出现N个类别 查询就自动形成N个列 ! O(∩_∩)O)

img

(附建表语句:

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CS_BOM]') AND type in (N'U'))
DROP TABLE [dbo].[CS_BOM]
GO

CREATE TABLE [dbo].[CS_BOM]
    (
    [主件] [varchar](20) NULL,
    [元件] [varchar](60) NULL,
    [用量] [float] NULL,
    [元件分类] [varchar](9) NOT NULL
    ) ON [PRIMARY]
GO
INSERT INTO [dbo].[CS_BOM]
    ([主件],[元件],[用量],[元件分类])
VALUES
     (N'产品xxx1', N'A1', 1, N'A类')
    ,(N'产品xxx1', N'A2', 2, N'A类')
    ,(N'产品xxx1', N'A3', 2, N'A类')
    ,(N'产品xxx1', N'B1', 1, N'B类')
    ,(N'产品xxx1', N'B3', 1, N'B类')
    ,(N'产品xxx1', N'C1', 1, N'C类')
    ,(N'产品xxx2', N'A2', 1, N'A类')
    ,(N'产品xxx2', N'A3', 1, N'A类')
    ,(N'产品xxx2', N'B1', 1, N'B类')
    ,(N'产品xxx2', N'B3', 2, N'B类')
    ,(N'产品xxx2', N'B5', 2, N'B类')
    ,(N'产品xxx2', N'B6', 2, N'B类')
    ,(N'产品xxx2', N'C1', 1, N'C类')
    ,(N'产品xxx2', N'C2', 1, N'C类')
    ,(N'产品xxx2', N'C3', 1, N'C类')
    ,(N'产品xxx2', N'C4', 1, N'C类')
    ,(N'产品xxx2', N'C5', 1, N'C类')
    ,(N'产品xxx2', N'C6', 1, N'C类')
GO

select * from CS_BOM
  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-04-24 13:02
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月14日
  • 修改了问题 4月24日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
  • ¥100 求Web版SPC控制图程序包调式
  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请