是这样的,最开始结果是正确的,但现在业务需求要求如果“派工状态”为“预安排”  ,则未汇报数量为0,通过以下语句实现,
 'case when dbo.MyView1.FStatus=0 then 0 else sum(dbo.MyView1.FAuxQtyPlan - dbo.MyView1.FAuxQtyForItem - dbo.MyView1.FAuxQtyScrap - dbo.MyView1.FAuxReprocessedQty - dbo.MyView1.FAuxQtyPass) end as  未汇报数量,'但是小计,合计没有变化,依然是原来的值

解决方案 »

  1.   

    +'case when dbo.MyView1.FStatus=0 then 0 '
    +' else sum(dbo.MyView1.FAuxQtyPlan - dbo.MyView1.FAuxQtyForItem - dbo.MyView1.FAuxQtyScrap - dbo.MyView1.FAuxReprocessedQty - dbo.MyView1.FAuxQtyPass) end as  未汇报数量,'
    改成
    +' sum(case when dbo.MyView1.FStatus=0 then 0 else dbo.MyView1.FAuxQtyPlan - dbo.MyView1.FAuxQtyForItem - dbo.MyView1.FAuxQtyScrap - dbo.MyView1.FAuxReprocessedQty - dbo.MyView1.FAuxQtyPass end) as  未汇报数量,'
    试试。
    意思就是,Sum在外,判断在内。
      

  2.   

    派工数量那一年是对的了,本来就是2吗? 只要修改后面的未汇报数量吗?
    sum(dbo.MyView1.FAuxQtyPlan - dbo.MyView1.FAuxQtyForItem - dbo.MyView1.FAuxQtyScrap - dbo.MyView1.FAuxReprocessedQty - dbo.MyView1.FAuxQtyPass) end as  未汇报数量,'你用前面的总数减的,结果,前面没变,结果当然不会变了。
      

  3.   

    Sum在外,判断在内。
    就這個原因  來晚了~