交叉表问题,请赐教!

doumingxuan 2006-04-22 04:09:59
create table tabpo(weekno nvarchar(10) not null,ponumber nvarchar(15) not null)
insert tabpo select 'we0403','PO001'
union all select 'we0403','PO002'
union all select 'we0403','PO003'
union all select 'we0403','PO004'
union all select 'we0403','PO005'
union all select 'we0410','PO006'
union all select 'we0410','PO007'
union all select 'we0410','PO008'
union all select 'we0417','PO009'
union all select 'we0417','PO010'
union all select 'we0424','PO011'
union all select 'we0424','PO012'
union all select 'we0424','PO013'
union all select 'we0424','PO014'

结果如下:

we0403 we0410 we0417 we0424 ...
PO001 PO006 PO009 PO011
PO002 PO007 PO010 PO012
PO003 PO008 PO013
PO004 PO014
PO005
...全文
223 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eddy8863 2006-04-22
  • 打赏
  • 举报
回复
create table tabpo(weekno varchar(10) not null,ponumber varchar(15) not null)
insert tabpo select 'we0403','PO001'
union all select 'we0403','PO002'
union all select 'we0403','PO003'
union all select 'we0403','PO004'
union all select 'we0403','PO005'
union all select 'we0410','PO006'
union all select 'we0410','PO007'
union all select 'we0410','PO008'
union all select 'we0417','PO009'
union all select 'we0417','PO010'
union all select 'we0424','PO011'
union all select 'we0424','PO012'
union all select 'we0424','PO013'
union all select 'we0424','PO014'
go

select [id]=(select count(1) from tabpo where weekno=a.weekno and ponumber<=a.ponumber ),* into # from tabpo a
declare @str varchar(8000)
select @str=''
select @str=@str+',['+weekno+']=max(case weekno when '''+weekno+''' then ponumber else '''' end)' from # group by weekno
select @str=stuff(@str,1,1,'')
select @str='select '+@str+' from # group by id order by id'
--print @str
exec(@str)

drop table Tabpo
drop table #

we0403 we0410 we0417 we0424
--------------- --------------- --------------- ---------------
PO001 PO006 PO009 PO011
PO002 PO007 PO010 PO012
PO003 PO008 PO013
PO004 PO014
PO005
xeqtr1982 2006-04-22
  • 打赏
  • 举报
回复
向大侠学习 :)
paoluo 2006-04-22
  • 打赏
  • 举报
回复

--建立測試環境
create table tabpo(weekno nvarchar(10) not null,ponumber nvarchar(15) not null)
--插入數據
insert tabpo select 'we0403','PO001'
union all select 'we0403','PO002'
union all select 'we0403','PO003'
union all select 'we0403','PO004'
union all select 'we0403','PO005'
union all select 'we0410','PO006'
union all select 'we0410','PO007'
union all select 'we0410','PO008'
union all select 'we0417','PO009'
union all select 'we0417','PO010'
union all select 'we0424','PO011'
union all select 'we0424','PO012'
union all select 'we0424','PO013'
union all select 'we0424','PO014'
Go
--測試
Declare @I Int
Declare @ID Int
Declare @S Varchar(8000)
Set @S=''

Select ID=(Select Count(*) from tabpo Where weekno=A.weekno And ponumber<=A.ponumber ),* Into TEST from tabpo A
Set @I=1
Select @ID=Max(ID) from TEST
While @I<=@ID
Begin
Set @S=@S+'Select '
Select @S=@S+'Max((Case When weekno='''+weekno+''' Then ponumber Else '''' End)) As '''+weekno+''',' from (Select Distinct weekno from TEST) A
Select @S=Left(@S,Len(@S)-1)+' from TEST Where ID='+Rtrim(@I)+' Union All '
Set @I=@I+1
End
Select @S=Left(@S,Len(@S)-10)
--Select @S
EXEC(@S)
--刪除測試環境
Drop Table tabpo,TEST
--結果
/*
we0403 we0410 we0417 we0424
PO001 PO006 PO009 PO011
PO002 PO007 PO010 PO012
PO003 PO008 PO013
PO004 PO014
PO005
*/
内容概要:本文档为一份聚焦电气工程、自动化与控制领域的科研辅助资源合集,重点围绕永磁同步电机(PMSM)控制、逆变器建模与仿真、微电网优化调度、参数辨识与预测控制等核心技术展开。核心内容为“增量式无差拍控制”与“基于电流预测误差的参数辨识”方法的Simulink仿真实现,属于高影响力期刊论文复现项目,旨在通过仿真手段提升系统动态响应精度与参数自适应能力。文档整合了大量典型研究案例,如LCL逆变器、扩展状态观测器(ESO)、模型预测控制(MPC)、滑模控制等,系统展示了现代控制理论在电机驱动、新能源系统与电力电子变换器中的综合应用与仿真实现路径。; 适合人群:具备电力电子、自动控制理论与Simulink仿真基础,从事电气工程、自动化、新能源系统等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 复现高水平期刊论文中的先进控制策略,掌握增量式无差拍与基于电流预测误差的参数辨识算法的设计原理与实现流程;② 学习并构建永磁同步电机、逆变器与微电网系统的Simulink仿真模型,提升建模与仿真能力;③ 深入理解现代控制算法(如MPC、滑模、自抗扰)在实际系统中的集成应用,增强科研创新能力与论文复现水平。; 阅读建议:此资源以Simulink仿真实践为核心,建议读者结合具体案例逐步操作,重点关注控制算法模块的搭建、参数整定与仿真结果分析,并配合相关理论文献深化理解,形成“理论-仿真-优化”的闭环学习路径,从而有效支撑科研创新与学术成果转化。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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