当前位置: 代码迷 >> VB Dotnet >> 求帮忙弄个SQL查询解决办法
  详细解决方案

求帮忙弄个SQL查询解决办法

热度:308   发布时间:2016-04-25 02:24:40.0
求帮忙弄个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
------解决方案--------------------
给你一个例子参考:


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.00 67.00 56.00 213.00
张         78.00 80.00 89.00 247.00
*/
  相关解决方案