sql server 2000的一个bug
[ 2006-09-23 12:24:43 | 作者: progame ]
select month(OrderDate) as CurrentMonth,sum(dbo.GetJobOrders(OperationID)) as HBLs, count(*) as Jobs,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'20') else 0 end + 0 -0) as FCLCTN20,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'40') else 0 end + 1 -1) as FCLCTN40,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'HQ') else 0 end + 2 -2) as FCLCTNHQ,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'45') else 0 end + 3 -3) as FCLCTN45,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'20') else 0 end + 4 -4) as LCLCTN20,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'40') else 0 end + 5 -5) as LCLCTN40,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'HQ') else 0 end + 6 -6) as LCLCTNHQ,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'45') else 0 end + 7 -7) as LCLCTN45,
sum(dbo.getTEU(OperationID)) as TEU,
sum(case when LoadingType = 'FCL' then 0 else Measurement end) as LCLMeasurement,
sum(dbo.GetGrossProfit(OperationID)) as GrossProfit,
sum(dbo.GetSumFreight(OperationID,'I')) as Income from
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'20') else 0 end + 0 -0) as FCLCTN20,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'40') else 0 end + 1 -1) as FCLCTN40,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'HQ') else 0 end + 2 -2) as FCLCTNHQ,
sum(case when LoadingType = 'FCL' then dbo.GetContainersBySize(OperationID,'45') else 0 end + 3 -3) as FCLCTN45,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'20') else 0 end + 4 -4) as LCLCTN20,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'40') else 0 end + 5 -5) as LCLCTN40,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'HQ') else 0 end + 6 -6) as LCLCTNHQ,
sum(case when LoadingType = 'CONSOL' then dbo.GetContainersBySize(OperationID,'45') else 0 end + 7 -7) as LCLCTN45,
sum(dbo.getTEU(OperationID)) as TEU,
sum(case when LoadingType = 'FCL' then 0 else Measurement end) as LCLMeasurement,
sum(dbo.GetGrossProfit(OperationID)) as GrossProfit,
sum(dbo.GetSumFreight(OperationID,'I')) as Income from
当GetContainersBySize的统计出现问题:
不使用sum的时候,一切正常
一使用sum,如果后面不加上我那变态的+x - x的话,居然会汇总成同样的值
怀疑是被查询优化给错误优化了
最后没办法,只好加上一个莫须有的表达式在后面,然后统计结果正确
对于其它的sum,一切正常
评论Feed: /feed.asp?q=comment&id=106
标签:
Sql Server
sum
您可能感兴趣的文章:
Sql Server 自动查询优化有时候也是靠不住的 (progame at 2006-10-19)
关于分页这点破事 -- 如何才能分得准 (progame at 2007-07-03)
小心getdate() (progame at 2007-08-16)
参数化SQL, 性能的调优抑或是杀手? (progame at 2007-12-13)
Only text pointers are allowed in work tables (progame at 2008-06-24)
SQL SERVER 2000中如何让union all构造出来的视图(view)利用到索引 (progame at 2006-04-28)
聚集索引和uniqueidentifier (guid) 不得不说的故事 (progame at 2006-08-03)
没有日志,只有MDF文件如何恢复数据库(转) (progame at 2006-10-17)
这篇日志没有评论.

