72 lines
2.6 KiB
SQL
72 lines
2.6 KiB
SQL
SELECT
|
|
t0.FBILLNO
|
|
,t0e.FSRCBILLNO
|
|
,t0e.FENTRYID
|
|
,t1e.F_CYG_WORKTYPE
|
|
,t1e.FFINISHQTY
|
|
,t1e.FSTDMANHOUR
|
|
,t1e.FHRWORKTIME
|
|
,t2p.FPERUNITSTANDHOUR
|
|
,(CASE t1e.F_CYG_WORKTYPE --工时类型
|
|
WHEN '' THEN t1e.FHRWORKTIME --人员实作工时
|
|
ELSE (CASE t1e.FSTDMANHOUR
|
|
WHEN 0 THEN t1e.FHRWORKTIME
|
|
ELSE t1e.FSTDMANHOUR * t1e.FFINISHQTY
|
|
END)
|
|
END) 'NEW_FHRWORKTIME'
|
|
,t2.F_CYG_FITTIME
|
|
,CASE t1e.F_CYG_WORKTYPE WHEN '1' THEN t2.F_CYG_FITTIME * t1e.FFINISHQTY ELSE 0 END 'NEW_FITTIME'
|
|
,t2.F_CYG_GUIDETIME
|
|
,CASE t1e.F_CYG_WORKTYPE WHEN '2' THEN t2.F_CYG_GUIDETIME * t1e.FFINISHQTY ELSE 0 END 'NEW_GUIDETIME'
|
|
INTO #temp
|
|
FROM T_CB_WORKHOURS t0 --实际工时归集表头
|
|
INNER JOIN T_CB_WORKHOURSENTRY t0e on t0.FID = t0e.FID --实际工时归集表体
|
|
INNER JOIN T_PRD_MORPTENTRY t1e on t1e.FENTRYID = t0e.FSRCENTRYID --任务汇报单表体
|
|
AND t1e.FID = t0e.FSRCBILLID AND t1e.FSEQ = t0e.FSRCSEQ AND t0e.FSRCBILLFORMID = 'PRD_MORPT'
|
|
INNER JOIN T_BD_MATERIAL t2 on t2.FMATERIALID = t1e.FMATERIALID
|
|
INNER JOIN T_BD_MATERIALPRODUCE t2p on t2p.FMATERIALID = t1e.FMATERIALID
|
|
|
|
--工时类型 ''.空 1.含安装工时 2.指导安装工时 3.不含安装工时
|
|
--任务汇报.工时类型 == '' 实际工时归集.人员实作工时# = 任务汇报.人员实作工时
|
|
|
|
--任务汇报.工时类型 == 1 如果 任务汇报.单位标准工时 等于 0 则:实际工时归集.人员实作工时# = 任务汇报.人员实作工时 - 任务汇报.完成数量 * 物料.安装工时#
|
|
-- 如果 任务汇报.单位标准工时 不等于 0 则:实际工时归集.人员实作工时# = 任务汇报.完成数量 * 任务汇报.单位标准工时
|
|
|
|
--任务汇报.工时类型 == 2 如果 任务汇报.单位标准工时 等于 0 则:实际工时归集.人员实作工时# = 任务汇报.人员实作工时 - 任务汇报.完成数量 * 物料.指导安装工时
|
|
-- 如果 任务汇报.单位标准工时 不等于 0 则:实际工时归集.人员实作工时# = 任务汇报.完成数量 * 任务汇报.单位标准工时
|
|
|
|
--任务汇报.工时类型 == 3 如果 任务汇报.单位标准工时 等于 0 则:实际工时归集.人员实作工时# = 任务汇报.人员实作工时
|
|
-- 如果 任务汇报.单位标准工时 不等于 0 则:实际工时归集.人员实作工时# = 任务汇报.完成数量 * 任务汇报.单位标准工时
|
|
|
|
|
|
--SELECT
|
|
-- t0.FBILLNO
|
|
-- ,t0.FSRCBILLNO
|
|
-- ,t0.FENTRYID
|
|
-- ,t0.F_CYG_WORKTYPE
|
|
-- ,t0.FFINISHQTY
|
|
-- ,t0.FSTDMANHOUR
|
|
-- ,t0.FHRWORKTIME
|
|
-- ,t0.FPERUNITSTANDHOUR
|
|
-- ,t0.NEW_FHRWORKTIME
|
|
-- ,t0.F_CYG_FITTIME
|
|
-- ,t0.NEW_FITTIME
|
|
-- ,t0.F_CYG_GUIDETIME
|
|
-- ,t0.NEW_GUIDETIME
|
|
-- INTO #temp1
|
|
--FROM #temp t0
|
|
--WHERE t0.FSTDMANHOUR = 0
|
|
|
|
--更新
|
|
--UPDATE t0e
|
|
--SET t0e.F_CYG_WORKTYPE = t1.F_CYG_WORKTYPE
|
|
-- ,t0e.FFitTimeTotal =t1.NEW_FITTIME
|
|
-- ,t0e.FguideTimeTotal = t1.NEW_GUIDETIME
|
|
-- ,t0e.FHrWorkTimePart = t1.NEW_FHRWORKTIME
|
|
--FROM T_CB_WORKHOURSENTRY t0e
|
|
-- INNER JOIN #temp t1 on t0e.FENTRYID = t1.FENTRYID
|
|
|
|
SELECT * FROM #temp
|
|
DROP TABLE #temp
|
|
--SELECT * FROM #temp1
|
|
--DROP TABLE #temp1 |