有关SQL实现报表问题,请教高手1!家里的分也不够了将就一下,希望有高手指点! ( 积分: 30 )

  • 主题发起人 主题发起人 xnfzy
  • 开始时间 开始时间
X

xnfzy

Unregistered / Unconfirmed
GUEST, unregistred user!
表数据:
项目名 物料 qty price total
M001 14-98661RH 10 2 20
M001 22-98661RH 10 2 20
M002 56-98661RH 10 2 20
M002 63-98661RH 10 2 20
M003 26-98661RH 10 2 20
M003 75-98661RH 10 2 20
M003 63-98661RH 10 2 20
如何写语句可得到
M001 M002 M003 qty price total
14-98661RH NULL NULL 10 2 20
22-98661RH NULL NULL 10 2 20
NULL 56-98661RH NULL 10 2 20
NULL 63-98661RH NULL 10 2 20
NULL NULL 26-98661RH 10 2 20
NULL NULL 75-98661RH 10 2 20
NULL NULL 63-98661RH 10 2 20
 
请高手帮忙指点一下!
 
只有固定的三个 M001 M002 M003吗?
如果不是固定的还真不好写[:(]
 
交叉表
或存储过程
 
To:corpose0
差不多就三个固定的,最多还加一个.但我想,如果三个固定的知道怎么写,多一二个应该问题不大吧?
To:lyq2276959
交叉表 怎么用?
存储过程又怎么写,能不能具体给点提示或代码,谢谢了!
 
select 物料 as 'M001','M002','M003',qty,price,total from 表 where 项目名 = 'M001'
UNION ALL
select 'M001',物料 as 'M002','M003',qty,price,total from 表 where 项目名 = 'M002'
UNION ALL
select 'M001','M002',物料 as 'M003',qty,price,total from 表 where 项目名 = 'M003'
如果不是固定的要用存储过程,视图
 
select
case 项目名 when 'M001' then 物料 end,
case 项目名 when 'M002' then 物料 end,
case 项目名 when 'M003' then 物料 end,
qty, price, total
from 表
 

Similar threads

I
回复
0
查看
843
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
774
import
I
后退
顶部