日期:2014-05-18  浏览次数:20668 次

怎么查询多个表把其中一些列计算给一个变量?
SQL code

declare @a int 
select 
set @a=a.us+b.uc,--给@a付值,
@a+b.count --以@a的值又进行计算
from a inner join b on a.id=b.id
这样写是错误的.




------解决方案--------------------
SQL code
select 
/*set*/ @a=a.us+b.uc,--给@a付值,
@a+b.count --以@a的值又进行计算
from a inner join b on a.id=b.id

-- no set

------解决方案--------------------
declare @a int
declare @b int
select @a=(a.us+b.uc) from a,b where a.id=b.id
select @b=count(b.id) from a,b where a.id=b.id
select @a+@b
------解决方案--------------------
要么set 要么select 写在一起就不对了。


------解决方案--------------------
SQL code

select 
@a=a.us+b.uc,--给@a付值,
@a+b.count --以@a的值又进行计算
from a inner join b on a.id=b.id

set @a=(select (a.us+b.uc) from a inner join b on a.id=b.id)