首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

聚合函数的查询结果列怎么求和

2012-08-09 
聚合函数的查询结果列如何求和?如下代码SQL codeselect ...,(b.quantity-isnull(sum(c.quantity),0))*b.un

聚合函数的查询结果列如何求和?
如下代码

SQL code
select ...,(b.quantity-isnull(sum(c.quantity),0))*b.unit_price as totalprice from table b left join table2 c on ... where ... group by ...


以上代码的查询结果 totalprice 列的值,需要全部值累加起来求和,如果不用另外写程序,只用sql语句就能一次性出来,可以吗?
效率和用程序totalprice+=的做法有区别吗?


[解决办法]
可以,把你这句放到with里面,然后再select,大致如下:

with tablename as
(
你的select
)
select 你要的列, sum(totalprice) 
from tablename
group by你要的列
[解决办法]
SQL code
WITH tb AS(select ...,(b.quantity-isnull(sum(c.quantity),0))*b.unit_price as totalprice from table b left join table2 c on ... where ... group by ...)SELECT SUM(totalprice )FROM tb
[解决办法]
探讨
如下代码

SQL code

select ...,(b.quantity-isnull(sum(c.quantity),0))*b.unit_price as totalprice from table b left join table2 c on ... where ... group by ...



以上代码的查询结果 totalprice 列的值,需要全部值累加起来……

[解决办法]
子查询算不算一次出来?
子查询与with类似了

另外,不使用group,直接sum就是你要的结果了
[解决办法]
with是mssql2005才开始的,专有的

热点排行