求SQL语句,比较复杂(200)

  • 主题发起人 主题发起人 漂流的雲
  • 开始时间 开始时间

漂流的雲

Unregistered / Unconfirmed
GUEST, unregistred user!
表A ZA001 ZA002 ZA003 MD003 BMKCS68063 X10547 2010-10-1 1064-2001072 100.005S68063-COGA04 X10547 2010-10-1 1064-2001072 100.51608S68063 X10547 2010-10-8 1064-2001072 6000.3S68063-COGA04 X10547 2010-10-8 1064-2001072 6030.9648S68063 X10547 2010-10-1 1041-1300031 100.008S68063 X10547 2010-10-8 1041-1300031 6000.48S68063-COGA04 X10547 2010-10-1 1031-6806312 100.51809S68063-COGA04 X10547 2010-10-8 1031-6806312 6031.0854得到MD003 ZA002 ZA001 2010-10-1 2010-10-81064-2001072 X10547 S68063 100.005 6000.31064-2001072 X10547 S68063-COGA04 100.51608 6030.96481064-2001072 ALL 200.52108 12031.2648 1041-1300031 X10547 S68063 100.008 6000.481041-1300031 ALL 100.008 6000. 1031-6806312 X10547 S68063-COGA04 100.51809 6031.08541031-6806312 ALL 100.51809 6031.0854
 
没人知道了吗,给个思路也好啊
 
declare @sql varchar(8000) set @sql = 'select MD003,ZA001,ZA002, ' select @sql=@sql +quotename(ZA003)+'=SUM(case when convert(varchar(10),ZA003,121)= '+quotename(ZA003,'''')+ ' then BMKC else 0 end), ' from ( select ZA003= convert(varchar(10),ZA003,121) from 表A group by convert(varchar(10),ZA003,121))tmp select @sql=left(@sql, len(@sql)-1), @sql=@sql+ ' from 表A group by MD003,ZA001,ZA002 ' exec(@sql) --实现把表A日期列转为行。现汇总要怎么添加进去
 
别想得太复杂,复杂问题简单化才是高手。你的问题就三个字,临时表
 
也不复杂,就是行列转换 ,加分类汇总
 
to seaflyboySQL可以做到的
 
在分类汇总字段后再上with rollup就行了
 
和前几天的这个问题类似。http://www.delphibbs.com/delphibbs/dispq.asp?lid=3996980
 
自己做出来了
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部