求帮忙弄个SQL查询
要查成这个形式的 小弟才学疏浅不太会
下面这个是我们数据库结构
select P.name from PubStock p
left join
(
select P.Name,m.Name,m.ID,sum(isnull(ms.QtyStock,0)) as QtySum from MatStatus ms --货品业务动态表
left join PubMaterial m on ms.MatID=M.ID--货品资料
left join PubStock P on P.ID=ms.StockID--仓库资料
group by P.Name,m.Name,m.ID
) MatQty on 1=1 sql 数据库
[解决办法]
给你一个例子参考:
create table cjb(姓名 char (10),课程名 char (10),成绩 [decimal](12, 2))
insert into cjb
select '张','数据库', 78 union
select '张','信息管理', 80 union
select '张','专业英语', 89 union
select '李','数据库', 90 union
select '李','信息管理', 67 union
select '李','专业英语', 56
go
declare @sql varchar(8000)
set @sql=''
select @sql=@sql + ',['+rtrim(课程名)+']=max(case 课程名 when '''+rtrim(课程名)+''' then rtrim(成绩) end)'
from cjb group by 课程名
exec('select 姓名'+@sql+',sum(成绩) as 合计 from cjb group by 姓名' )
/*
姓名数据库信息管理专业英语合计
---------------------------------------------------
李 90.0067.0056.00213.00
张 78.0080.0089.00247.00
*/