行列转化及合并

产品 , 数量 , 箱号
  A , 2 , 1
  A , 2 , 2
  A , 2 , 3
  B , 1 , 4
  B , 1 , 4
  C , 3 , 5
  C , 3 , 6

查询结果需要将箱号统计出来:如
  产品 , 数量 , 箱号范围 , 箱数
  A , 6 , 1-3 , 3
  B , 2 , 4 , 1
  C , 6 , 5-6 , 2

select 产品, 数量=sum(数量), 箱号范围=case when max(箱号)=min(箱号) then convert(varchar(20),max(箱号))

else convert(varchar(20),min(箱号))+'-'+convert(varchar(20),max(箱号)) end, 箱数=max(箱号)-min(箱号)+1

from B_HP

group by 产品

order by 产品

 

-----------------------------------------------------------------------------------------------------------------------------------------------

表结构和内容如下i

d ptah uid3

fa_q.jpg 2655

aa_s.jpg 2659

ad_s.jpg 26513

ca_q.jpg 26615

fd_s.jpg 26632

ja_q.jpg 267

文件名有两种类型_q.jpg和_s.jpg,希望求得结果是_q.jpg的文件名和_s.jpg的文件数量如下

fa_q.jpg   2  265

ca_q.jpg  1  266

ja_q.jpg   0  267

 

 

select t1.ptah,(select COUNT(*) from #tb t2 where RIGHT(t2.ptah,6)='_s.jpg' and t2.[uid]=t1.[uid]) as num,t1.[uid] from #tb t1where RIGHT(t1.ptah,6)='_q.jpg'

 

select a.[ptah],count(b.[ptah]) as cnt,a.uidfrom tb aleft join tb b on a.uid=b.uid and b.[ptah] like '%_s.jpg'where a.[ptah] like '%_q.jpg'group by a.[ptah],a.uid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值