这样的查询如何做?
数据库表如下
表1
编号
AAA
BBB
CCC
表2
月份 编号 金额
200701 AAA 10
200701 BBB 11
200701 CCC 12
200702 AAA 100
200702 BBB 110
200702 CCC 120
如何通过查询获取这样的表
200701 200702
AAA 10 100
BBB 11 110
CCC 12 120
[解决办法]
如何通过查询获取这样的表
200701 200702
AAA 10 100
BBB 11 110
CCC 12 120
------------------
我怎么看不懂这个结构
你的表1根本没用
[解决办法]
呵呵,行列转换
[解决办法]
关注一下。楼主的这种表结构怕是查不出来吧
[解决办法]
select * from 表2 where (select 编号 from 表1) = 编号
[解决办法]
重写sql语句,然后重新排序
[解决办法]
declare @sql varchar(8000)
set @sql = 'select b.* from 表1 a left join (select 编号 '
select @sql = @sql + ',sum(case 月份 when ' ' ' + 月份 + ' ' ' then 金额 else 0 end) as [ ' + 月份 + '] ' from 表2 group by 月份
exec(@sql + ' from 表2 group by 编号) b on a.编号=b.编号 ')
[解决办法]
樓上.
[解决办法]
是动态生成SQL语句
你在exec之前print 一下就看出来了
print (@sql + ' from 表2 group by 编号) b on a.编号=b.编号 ')
[解决办法]
樓上答案好象不對 隻能一個月一個月的查
[解决办法]
--建表1
create table 表1
(编号 varchar(30))
--插入数据
insert into 表1
select 'AAA ' union all
select 'BBB ' union all
select 'CCC '
--建表2
create table 表2
(月份 varchar(6), 编号 varchar(30),金额 int)
insert into 表2
select '200701 ', 'AAA ',10 union all
select '200701 ', 'BBB ',11 union all
select '200701 ', 'CCC ',12 union all
select '200702 ', 'AAA ',100 union all
select '200702 ', 'BBB ',110 union all
select '200702 ', 'CCC ',120 union all
select '200702 ', 'DDD ',110 union all
select '200702 ', 'DDD ',120
--获取数据
declare @sql varchar(8000)
set @sql = 'select b.* from 表1 a left join (select 编号 '
select @sql = @sql + ',sum(case 月份 when ' ' ' + 月份 + ' ' ' then 金额 else 0 end) as [ ' + 月份 + '] ' from 表2 group by 月份
set @sql = @sql + ' from 表2 group by 编号) b on a.编号=b.编号 '
--print @sql
exec(@sql)
[解决办法]
access?
那就麻烦了
我写的SQL Server语句
[解决办法]
asp 和sql 楼主都完全搞混了
[解决办法]
哈哈哈.
[解决办法]
简单的,固定显示几个月份
--------------------------------
select dkhbh,
sum(case yuefen when '200701 ' then zd else 0 end) as [200701],
sum(case yuefen when '200702 ' then zd else 0 end) as [200702],
sum(case yuefen when '200703 ' then zd else 0 end) as [200703]
from dkhxf a
where exists (select 1 from dkhinfo where dkhbh=a.dkhbh)
group by dkhbh