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

说是Vstock_TotalMoney 未在聚合列中 缺少group by ?解决方案

2012-05-22 
说是Vstock_TotalMoney 未在聚合列中 缺少group by ????select @MoneyAvailable a.Vstock_TotalMoney -

说是Vstock_TotalMoney 未在聚合列中 缺少group by ????
select @MoneyAvailable = a.Vstock_TotalMoney - SUM(b.BuyPrice * b.BuyVol) - SUM(b.BuyTax) - SUM(b.BuyFee) 
from dbo.aspnet_Users a 
inner join dbo.aspnet_Vstock_BuyOrder b
on a.UserId = @UserId and b.UserId = a.UserId

怎么加 group by啊?!

另外,上面的可不可以写成 ,都写在一个sum中?!

select @MoneyAvailable = a.Vstock_TotalMoney - SUM(b.BuyPrice * b.BuyVol + b.BuyTax + b.BuyFee) 
from dbo.aspnet_Users a 
inner join dbo.aspnet_Vstock_BuyOrder b
on a.UserId = @UserId and b.UserId = a.UserId

[解决办法]
你可以这样写
select @MoneyAvailable=sum(Vstock_TotalMoney)
from dbo.aspnet_Users

select @MoneyAvailable = @MoneyAvailable - SUM(b.BuyPrice * b.BuyVol) - SUM(b.BuyTax) - SUM(b.BuyFee) 
from dbo.aspnet_Users a 
inner join dbo.aspnet_Vstock_BuyOrder b
on a.UserId = @UserId and b.UserId = a.UserId

[解决办法]
试试这个。

SQL code
select  a.UserId,@MoneyAvailable = SUM(a.Vstock_TotalMoney - (b.BuyPrice * b.BuyVol + b.BuyTax + b.BuyFee) )from dbo.aspnet_Users a inner join dbo.aspnet_Vstock_BuyOrder bon a.UserId = @UserId and b.UserId = a.UserIdGRoup by  a.UserId
[解决办法]
高手们出马 你的问题会立即解决的 过来学习了
[解决办法]
select @MoneyAvailable=(
a.Vstock_TotalMoney-
(select SUM(b.BuyPrice * b.BuyVol) from dbo.aspnet_Vstock_BuyOrder b where b.UserId = a.UserId)-
(select SUM(b.BuyTax) from dbo.aspnet_Vstock_BuyOrder b where b.UserId = a.UserId)-
(select SUM(b.BuyFee) from dbo.aspnet_Vstock_BuyOrder b where b.UserId = a.UserId)
)
from dbo.aspnet_Users a 
where a.UserId = @UserId

你这个要用子查询来做。
[解决办法]
select @MoneyAvailable=Vstock_TotalMoney
from dbo.aspnet_Users where UserId = @UserId

select @MoneyAvailable = @MoneyAvailable - SUM(b.BuyPrice * b.BuyVol) - SUM(b.BuyTax) - SUM(b.BuyFee) 
from dbo.aspnet_Users a 
inner join dbo.aspnet_Vstock_BuyOrder b
on a.UserId = @UserId and b.UserId = a.UserId

热点排行