大家来帮帮忙,关于库存统计的问题

rjslga 2008-12-05 11:43:07
序号 货号 状况 尺寸 数量
1 101 未处理 S|M 2|1
2 102 未处理 M|XL 1|1
3 102 已处理 M 4
4 103 未处理 L|XL 6|1
5 101 未处理 M|L 3|1
6 103 已处理 XL 4
7 103 未处理 M 2
8 102 未处理 M 1

尺寸和数量是一一对应该的,有没有办法统计得到类似如下的结果:

我想得到的结果:

未处理X货号:S码的X件;M码的X件;L码的X件;
已处理X货号:S码的X件;M码的X件;L码的X件;
...全文
95 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrshelly 2008-12-06
  • 打赏
  • 举报
回复
对应不同的情况,多查几次好了...
taochunsong 2008-12-06
  • 打赏
  • 举报
回复
什么鸟数据表格式啊,怎么会这个样子的呢
-晴天 2008-12-06
  • 打赏
  • 举报
回复
create table tb(序号 int,货号 int,状况 nvarchar(10),尺寸 varchar(10),数量 varchar(10))
insert into tb select 1,101,'未处理','S|M','2|1'
insert into tb select 2,102,'未处理','M|XL','1|1'
insert into tb select 3,102,'已处理','M','4'
insert into tb select 4,103,'未处理','L|XL','6|1'
insert into tb select 5,101,'未处理','M|L','3|1'
insert into tb select 6,103,'已处理','XL','4'
insert into tb select 7,103,'未处理','M','2'
insert into tb select 8,102,'未处理','M','1'

select 货号,状况,尺寸,sum(convert(int,数量)) as 数量 from (
select * from tb where charindex('|',尺寸)=0
union all
select 序号,货号,状况,left(尺寸,charindex('|',尺寸)-1),left(数量,charindex('|',数量)-1) from tb where charindex('|',尺寸)>0
union all
select 序号,货号,状况,right(尺寸,len(尺寸)-charindex('|',尺寸)),right(数量,len(数量)-charindex('|',数量)) from tb where charindex('|',尺寸)>0
)T group by 货号,状况,尺寸
go
drop table tb
/*
货号 状况 尺寸 数量
----------- ---------- ---------- -----------
101 未处理 L 1
101 未处理 M 4
101 未处理 S 2
102 未处理 M 2
102 未处理 XL 1
102 已处理 M 4
103 未处理 L 6
103 未处理 M 2
103 未处理 XL 1
103 已处理 XL 4

(10 行受影响)*/

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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