当前位置: 代码迷 >> Sql Server >> SQL语句运行提示,该如何解决
  详细解决方案

SQL语句运行提示,该如何解决

热度:23   发布时间:2016-04-24 10:08:29.0
SQL语句运行提示
select g.FNumber, t_icitem.Fname as '物料名称',t_icitem.Fmodel as '规格',g.期初结存数量,g.单价1,
g.期初余额 ,g.本期收货数量,g.单价2,g.本期收入金额,g.本期发出数量,g.单价3,g.本期发出金额,g.期末结存数量,
g.单价4,g.期末余额 from  
(select    FYear as '会计年度',Fperiod as '会计期间',t.FNumber AS '物料代码',
sum(FBegQty) as '期初结存数量',(case when sum(FBegQty)='0' then 0
                                 when sum(FBegQty)<>'0' then round((sum(FBegBal)/sum(FBegQty) ),4)
                                   else null end) as 单价1,sum(FBegBal) as '期初余额',
sum(FReceive) as '本期收货数量',(case when sum(FReceive)='0' then 0
                                 when sum(FReceive)<>'0' then round((sum(FDebit)/sum(FReceive)),4)
                                   else null end)as 单价2 ,sum(FDebit) as'本期收入金额',

sum(FSend)as '本期发出数量',(case when sum(FSend)='0' then 0
                                 when sum(FSend)<>'0' then round((sum(FCredit)/sum(FSend)),4)
                                   else null end) as 单价3, sum(FCredit) as '本期发出金额',
sum(FEndQty) as '期末结存数量',(case when sum(FEndQty)='0' then 0
                                 when sum(FEndQty)<>'0' then round((sum(FEndBal)/sum(FEndQty)),4)
                                   else null end) as 单价4,sum(FEndBal) as '期末余额'
from icbal I inner join t_icitem t on I.FITEMID=T.FITEMID left join t_stock ts on ts.FItemID=I.FStockGroupID

where FYear='2014'and Fperiod='3'AND ts.fname like '漆包%'
group by FYear ,Fperiod,t.FNumber
 )g , t_icitem   where g.FNumber=t_icitem.FNumber

运行时老提示,请看附图

------解决方案--------------------
这样就不抱错,但是没环境,不知道结果是怎样的
SELECT  g.物料代码 ,
        t_icitem.Fname AS '物料名称' ,
        t_icitem.Fmodel AS '规格' ,
        g.期初结存数量 ,
        g.单价1 ,
        g.期初余额 ,
        g.本期收货数量 ,
        g.单价2 ,
        g.本期收入金额 ,
        g.本期发出数量 ,
        g.单价3 ,
        g.本期发出金额 ,
        g.期末结存数量 ,
        g.单价4 ,
        g.期末余额
FROM    ( SELECT    FYear AS '会计年度' ,
                    Fperiod AS '会计期间' ,
                    t.FNumber AS '物料代码' ,
                    SUM(FBegQty) AS '期初结存数量' ,
                    ( CASE WHEN SUM(FBegQty) = '0' THEN 0
                           WHEN SUM(FBegQty) <> '0'
                           THEN ROUND(( SUM(FBegBal) / SUM(FBegQty) ), 4)
                           ELSE NULL
  相关解决方案