是这样的,最开始结果是正确的,但现在业务需求要求如果“派工状态”为“预安排” ,则未汇报数量为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 未汇报数量,'但是小计,合计没有变化,依然是原来的值
'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 未汇报数量,'但是小计,合计没有变化,依然是原来的值
+' 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在外,判断在内。
sum(dbo.MyView1.FAuxQtyPlan - dbo.MyView1.FAuxQtyForItem - dbo.MyView1.FAuxQtyScrap - dbo.MyView1.FAuxReprocessedQty - dbo.MyView1.FAuxQtyPass) end as 未汇报数量,'你用前面的总数减的,结果,前面没变,结果当然不会变了。
就這個原因 來晚了~