两个计算出来的字段如何进行除法
SELECT [LoadingOne] as 装车人
,总装车费=dbo.zxhuo(KaName,Brand,1,GoodsTon,0,0),装车人数=dbo.CreateListFromStr(LoadingOne) where.....
现在我想得到 平均装车费= 总装车费/装车人数 的数据,如果
平均装车费=dbo.zxhuo(KaName,Brand,1,GoodsTon,0,0)/dbo.CreateListFromStr(LoadingOne)
这样数据库就计算两遍了,这样不好吧
------解决方案--------------------就这样用没什么问题啊平均装车费=dbo.zxhuo(KaName,Brand,1,GoodsTon,0,0)/dbo.CreateListFromStr(LoadingOne)
------解决方案--------------------try this,
with t as
(SELECT [LoadingOne] as 装车人,
总装车费=dbo.zxhuo(KaName,Brand,1,GoodsTon,0,0),
装车人数=dbo.CreateListFromStr(LoadingOne)
from [表名]
where.....
)
select 装车人,总装车费,装车人数,平均装车费=总装车费/装车人数 from t
------解决方案--------------------嵌套一层搞定
------解决方案--------------------
在语句的外面,包一层就行了哈,这样,在外层计算平均装车费的时候,就不会重复再次计算:总装车费和装车人数了,而是利用了内层已经计算出来的:总装车费和装车人数。
select 装车人,
总装车费,
装车人数,
平均装车费= 总装车费/装车人数
from
(
SELECT [LoadingOne] as 装车人
,总装车费=dbo.zxhuo(KaName,Brand,1,GoodsTon,0,0),
装车人数=dbo.CreateListFromStr(LoadingOne)
where.....
)t
------解决方案--------------------我说点与问题无关的吧。。。在大结果集的情况下楼主这种调用函数的方式会极大的降低效率,推荐再好好分析一下函数的功能,尽量用链接来完成计算。。