sql查询结果然后作计算

就是查询后的结果要显示这样
科目 名称 1月 2 月 3月 4月 .....12月 合计
s s 200 100 500 700 300 1800
d d 100 100 200 200 200 800
小计 300 200 700 900 500 2600
在线等 哪位大侠帮帮忙了啊 急用!!!!!!
我用的是sql server2000啊。

--列名和表名修改一下,小记部分ORACLE数据库可以用rollup命令
SELECT 科目,名称
SUM(CASE 月份 WHEN '1月' THEN 数值 END) 1月,
SUM(CASE 月份 WHEN '2月' THEN 数值 END) 2月,
SUM(CASE 月份 WHEN '3月' THEN 数值 END) 3月,
SUM(CASE 月份 WHEN '4月' THEN 数值 END) 4月,
SUM(CASE 月份 WHEN '5月' THEN 数值 END) 5月,
SUM(CASE 月份 WHEN '6月' THEN 数值 END) 6月,
SUM(CASE 月份 WHEN '7月' THEN 数值 END) 7月,
SUM(CASE 月份 WHEN '8月' THEN 数值 END) 8月,
SUM(CASE 月份 WHEN '9月' THEN 数值 END) 9月,
SUM(CASE 月份 WHEN '10月' THEN 数值 END) 10月,
SUM(CASE 月份 WHEN '11月' THEN 数值 END) 11月,
SUM(CASE 月份 WHEN '12月' THEN 数值 END) 12月,
SUM(数值) 合计
FROM 表
GROUP BY 科目,名称
UNION ALL
SELECT '','小计'
SUM(CASE 月份 WHEN '1月' THEN 数值 END) 1月,
SUM(CASE 月份 WHEN '2月' THEN 数值 END) 2月,
SUM(CASE 月份 WHEN '3月' THEN 数值 END) 3月,
SUM(CASE 月份 WHEN '4月' THEN 数值 END) 4月,
SUM(CASE 月份 WHEN '5月' THEN 数值 END) 5月,
SUM(CASE 月份 WHEN '6月' THEN 数值 END) 6月,
SUM(CASE 月份 WHEN '7月' THEN 数值 END) 7月,
SUM(CASE 月份 WHEN '8月' THEN 数值 END) 8月,
SUM(CASE 月份 WHEN '9月' THEN 数值 END) 9月,
SUM(CASE 月份 WHEN '10月' THEN 数值 END) 10月,
SUM(CASE 月份 WHEN '11月' THEN 数值 END) 11月,
SUM(CASE 月份 WHEN '12月' THEN 数值 END) 12月,
SUM(数值) 合计
FROM 表
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-05
关键是后面的合计,不好办啊,建议设计数据库时加上一个字段,就是合计行,
每次insert或update时就计算出合计的字段,保存到数据库就好了。

SQL查询出的结果为查询条件,最后进行计算批量改数据
update 表名 set 成绩=a.成绩+b.成绩 from(select 姓名,成绩 from 表名 where 科目= '日语') binner join 表名 a on a.姓名=b.姓名where a.科目='外语'sqlserver的话用上边那句,其他数据库可能写法有变化,其他数据库的话再说

SQL 多表联合查询计算 是先联合还是先计算?
SQL Server结果:先筛选,再计算。根据就是看执行计划,见图。

sql查询结果然后作计算
SELECT 科目,名称 SUM(CASE 月份 WHEN '1月' THEN 数值 END) 1月,SUM(CASE 月份 WHEN '2月' THEN 数值 END) 2月,SUM(CASE 月份 WHEN '3月' THEN 数值 END) 3月,SUM(CASE 月份 WHEN '4月' THEN 数值 END) 4月,SUM(CASE 月份 WHEN '5月' THEN 数值 END) 5月,SUM(CASE 月份 WH...

SQL查询结果如何赋值
select sum(a.ten) as '10岁',sum(a.twenty) as '20岁' from (select count(*) ten,0 twenty from humanmain where hmage=10 union select 0,count(*)from humanmain where hmage=20) a

sql怎么用查询结果作为条件进行查询
1、查询数据库表的所有字段并直接使用select语句。从数据库表中选择*。2、查询数据库表的part部分字段,可以使用select field命令,从数据库表中选择字段名称。3、根据条件查询,使用后面的条件,加上从数据库表中选择条件名称。4、使用distinct命令查询数据库字段记录中的非重复结果,从数据库中选择不同的...

请教SQL查询并计算总和的语句
下面的是全部的和 测试通过 再不给分 杀了你 select ((select isnull(sum(sal)*1.2,0) from emp where (deptno=10) or (deptno=40) )+(select isnull(sum(sal)*2,0) from emp where deptno=20 )+(select isnull(sum(sal)*1.5,0) from emp where deptno=30 ))

把两条SQL语句查询的结果数据在SQL中进行加总:
,'HSC','HSCE','BSC','BSCE','CMS','FPS','SFS','SFC','SCC') AND PRD_NO='477G-32800RS') a,(select sum(QTY_ON_WAY) sum2 from sh_prdt1 where WH in('0000','HSC','HSCE','BSC','BSCE','CMS','FPS','SFS','SFC','SCC') AND PRD_NO='477G-32800RS') b ...

如何将sql中两个连接表查询出来的结果 进行合计 急等
select sum(fprice) from (select fitemid,fprice from a union select fitemid,sum(fprice) from b group by fitemid ) t 两个全连接语句可以任意加上条件,将查出来的信息合并再合计

sql语句查询,并统计查询结果数量
sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此语句即可查询出来统计的记录条数。备注:以上方法通用于所有的数据统计,如果是单表查询,可以直接通过:“select count( *) from tablename1 where id>5"的形式查询出结果。结构化查询语言(...

SQL将查询汇总结果通过计算更新到另一表中的某个字段
update INVMB set UDF51=b.INVLALA011 from INVMB a inner join (SELECT INVLA.LA001 as INVLALA001,SUM(INVLA.LA011)\/12 as INVLALA011 FROM INVLA WHERE ((INVLA.LA005 < 0)) AND INVLA.LA011 >= 1 AND DateDiff(dd, INVLA.LA004, GetDate()) <= 365 GROUP BY INVLA.LA001...

相似回答
大家正在搜