表结构如下:序号 名称 本月收入 本年收入
1 A 200 1600
2 B 300 2000
3 C 500 3000
4 D 800 5000想变成如下:
序号 名称 本月收入 本年收入
1 A 200 1600
2 B 300 2000
3 C 500 3000
4 D 800 5000
5 B比A多 100 400
6 D比C多 300 2000
如何写?谢谢
1 A 200 1600
2 B 300 2000
3 C 500 3000
4 D 800 5000想变成如下:
序号 名称 本月收入 本年收入
1 A 200 1600
2 B 300 2000
3 C 500 3000
4 D 800 5000
5 B比A多 100 400
6 D比C多 300 2000
如何写?谢谢
解决方案 »
- sql2000中的表 紧急求解
- sql server 2005 本地发布和订阅报错
- sql 语句:向access 数据库增加字段
- 如何在备份多个数据库之前清空磁带?SOS!
- 将一张表中的记录合并
- 应该不算是个难问题,请进来看看
- 数据库压力一直很大,请大家帮我看看如何解决,有图
- 删除表中重复记录的问题
- 菜鸟出来乍到,望各位高手提携,现有一个很菜之问题,求教各位~~```
- 不能连接到 SQL Server 2000
- sql server 2005 安装一半 ,出错
- 我在企业管理器中用“所有任务->生成SQL脚本”生成了我的数据库的SQL脚本文件ss.sql,请问如何用ado代码利用ss.sql文件创建新数据库xpor.mdf和xpor_log.ldf。并且新创建的这个数据库与“生成SQL脚本”的那个原数据库完全相同。
INSERT @a SELECT 1 ,'A', 200, 1600
UNION ALL SELECT 2 ,'B', 300, 2000
UNION ALL SELECT 3 ,'C', 500, 3000
UNION ALL SELECT 4 ,'D', 800, 5000 SELECT id=IDENTITY(int,1,1),b,c,d INTO #tmp FROM(
SELECT * FROM @a
UNION ALL
SELECT a,b+'比'+(select b FROM @a where a=a.a-1)+'多',
c-(SELECT c FROM @a WHERE a=a.a-1),
d-(SELECT d FROM @a WHERE a=a.a-1)
FROM @a a WHERE a%2=0
)aa
SELECT * FROM #tmp
DROP TABLE #tmp
--result
/*id b c d
----------- ------------------------------ ----------- -----------
1 A 200 1600
2 B 300 2000
3 C 500 3000
4 D 800 5000
5 B比A多 100 400
6 D比C多 300 2000 (所影响的行数为 6 行)*/
insert into # select 'a',200,1600
insert into # select 'b',300,2000
insert into # select 'c',500,3000
insert into # select 'd',800,5000
select name,m_income,y_income from #
union all
select name+'比'+fname+'多',M_income-Fm_income,y_income-Fy_income
from
(
select max(case when(id)%2=0 then name end) as name,
max(case when(id)%2=0 then M_income end) M_income,
max(case when(id)%2=0 then Y_income end) y_income,
max(case when(id)%2=1 then name end) Fname,
max(case when(id)%2=1 then M_income end) fM_income,
max(case when(id)%2=1 then Y_income end) fY_income from #
group by (id+1)/2
) aaname m_income y_income
------------------------ ----------- -----------
a 200 1600
b 300 2000
c 500 3000
d 800 5000
b比a多 100 400
d比c多 300 2000
INSERT @a SELECT 1 ,'A', 200, 1600
UNION ALL SELECT 2 ,'B', 300, 2000
UNION ALL SELECT 3 ,'C', 500, 3000
UNION ALL SELECT 4 ,'D', 800, 5000
select b [名称],c [本月收入],d [本年收入] from @a
union all select
B.b + ' 比 '+ A.b +'多' [名称], B.c - a.c [本月收入],B.d - A.d [本年收入] from @a A inner join ( select a, b ,c , d from @a ) B
on A.a = B.a -1
INSERT @a SELECT 1 ,'A', 200, 1600
UNION ALL SELECT 2 ,'B', 300, 2000
UNION ALL SELECT 3 ,'C', 500, 3000
UNION ALL SELECT 4 ,'D', 800, 5000