需求变更!!!行转列数据合并问题!!!

smilewmr 2013-08-30 10:00:19
原始表格内容:
XBBH ZBDJBH ONE TWO GUANCI
172753 HNT00010163 616 255 配比
172754 HNT00010163 643 278 第1罐
172755 HNT00010163 616 255 配比
172756 HNT00010163 604 292 第2罐
172757 HNT00010163 1247 570 累计值
172758 HNT00010163 1.22 11.76 总误差%

现需要表格内容:
ZBDJBH GUANCI ONE配比 ONE称重 ONE总误差% TWO配比 TWO称重 TWO总误差%
HNT00010163 第1罐 616 643 4.38 255 278 9.02
HNT00010163 第2罐 616 604 -1.95 255 292 14.5

说明:
在原始表中,有多个列,从one到ten,举例只写出了两个列的内容。每一个ZBDJBH可能有多个罐次,现在需要将每个罐次的内容提取出来,也就是有几个罐次,ZBDJBH编号就整理成几行显示,这个如何做呢?望大侠们指点指点!
在此谢啦!
...全文
98 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzw_0736 2013-08-30
  • 打赏
  • 举报
回复

create table #tb(XBBH int,ZBDJBH varchar(20),
    ONE numeric(12,2),TWO numeric(12,2),GUANCI varchar(10))
insert into #tb
select 172753,'HNT00010163',616,255,'配比'
union all select 172754,'HNT00010163',643,278,'第1罐'
union all select 172755,'HNT00010163',616,255,'配比'
union all select 172756,'HNT00010163',604,292,'第2罐'
union all select 172757,'HNT00010163',1247,570,'累计值'
union all select 172758,'HNT00010163',1.22,11.76,'总误差%'


SELECT a.ZBDJBH,a.GUANCI
,b.ONE ONE配比,a.ONE ONE称重,CAST(100.*(a.ONE-b.ONE)/b.ONE AS decimal(10,2)) [ONE总误差%]
,b.TWO TWO配比,a.TWO TWO称重,CAST(100.*(a.TWO-b.TWO)/b.TWO AS decimal(10,2)) [TWO总误差%]
FROM #tb a
CROSS APPLY 
(
SELECT TOP 1 * FROM #tb WHERE XBBH<a.XBBH ORDER BY XBBH desc
) b
WHERE a.GUANCI LIKE '第%'

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧