SqlServe_routapply 使用

<pre><code>
SELECT

newstate=case when (isnull(accfirst,0)>0 AND isnull(accarrived,0)>0 AND isnull(accback,0)>0 ) then (isnull(accfirstok,0)+(isnull(accarrivedok,0)+(SELECT sum(hx_status) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND hx_status=1))+(case when (isnull(accbackok,0)=1 AND isnull(accleft,0)=0) then 1 else 0 end )) -- 现付,到付,回付
              when (isnull(accfirst,0)>0 AND isnull(accarrived,0)>0 AND isnull(accback,0)=0 AND isnull(accfirstok,0)=1 AND ( isnull(accarrivedok,0)=1 or  ((SELECT sum(hx_status) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND hx_status=1)=(SELECT count(1) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND acc>0)) )) then 3  --现付,到付
              when (isnull(accfirst,0)>0 AND isnull(accarrived,0)=0 AND isnull(accback,0)>0 AND isnull(accfirstok,0)=1 AND (isnull(accbackok,0)=1 AND isnull(accleft,0)=0)) then 3-- 现付,回付
              when (isnull(accfirst,0)>0 AND isnull(accarrived,0)=0 AND isnull(accback,0)=0 AND isnull(accfirstok,0)=1 ) then 3 --只有现付
              when (isnull(accfirst,0)=0 AND isnull(accarrived,0)>0 AND isnull(accback,0)=0 AND (isnull(accarrivedok,0)=1 or ((SELECT sum(hx_status) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND hx_status=1)=(SELECT count(1) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND acc>0)) )) then 3 --只有到付
              when ( isnull(accfirst,0)=0 AND isnull(accarrived,0)=0 AND isnull(accback,0)>0 AND (isnull(accbackok,0)=1 AND isnull(accleft,0)=0) ) then 3 --只有回付
              when ( isnull(accfirst,0)=0 AND isnull(accarrived,0)>0 AND isnull(accback,0)>0 AND (isnull(accarrivedok,0)=1 or ((SELECT sum(hx_status) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND hx_status=1)=(SELECT count(1) FROM B_VEHICLE_account WHERE inoneflag=a.inonevehicleflag AND acc>0))  ) AND (isnull(accbackok,0)=1 AND isnull(accleft,0)=0)) then 3 --只有到付回付
              else 0 end,billdate as senddate

FROM B_VEHICLE_HT as a left join b_vehicle_trace as b on a.inonevehicleflag=b.inoneflag
outer apply (select
weighttotal=sum(d.weight * c.qty / d.qty),
volumntotal=sum(d.volumn * c.qty / d.qty),
acctrans=sum(d.acctrans * c.qty / d.qty),
acctotal_in=sum((d.accnow + d.accarrived + d.accback + d.accmonth + d.acchuokuankou)* c.qty / d.qty),
acchuikou=sum(d.acchuikou * c.qty / d.qty),
bdqita=sum(d.bdqita * c.qty / d.qty),
accfact=sum((d.accnow + d.accarrived + d.accback + d.accmonth + d.acchuokuankou - d.acchuikou - d.bdqita) * c.qty / d.qty),
qtytotal=sum(c.qty)
from b_fcd as c join b_tyd as d on c.unit=d.unit
where c.inonevehicleflag=a.inonevehicleflag
) as e
WHERE a.billdate BETWEEN @t1 AND @t2
AND a.bsite like @bsite
AND a.esite like @esite

</pre></code>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 半块月亮 离开了山顶洞 我们沿河牧马而来 双手 双手沾满相互的爱情 我们埋了道路 建了村庄 一只粗笨的陶碗 收养了我们
    古郁阅读 400评论 0 0
  • 1.beforeCreate: 创建了Vue组件实例,但是组件属性还未初始化。比如,data, elt等为unde...
    电影里的梦i阅读 168评论 0 0
  • 半醉谈兵气尚雄,短衣长剑梦从戎。十年猿臂闲无用,野圃斜阳试柘弓。
    b00a2860b713阅读 131评论 0 0
  • 红尘有泪 繁花飘散 飞絮如雪 落满红妆 天苍苍 夜凄凉 发丝千丈 愁长 如雪如霜 为谁惆怅到天亮 红霞 掩不住心伤...
    星辰溥天阅读 212评论 0 0
  • 一日,宋代大学士苏东坡与佛印禅师在禅堂打坐,苏东坡问禅师:"你看我坐在这里像什么?"禅师回答:"如来。"禅师反问东...
    北斗玉衡阅读 346评论 0 1