Piolot_RepotForm_PeiHao/系统产品线业绩报表存储过程.sql
李狗蛋 69cf26105d 0
2025-03-14 10:00:24 +08:00

365 lines
9.4 KiB
Transact-SQL

ALTER Proc [dbo].[Get_XTCPXYJBB]
(
@FSaleOrgId nvarchar(1000),--组织
@FCZZHTH nvarchar(1000),--纸质合同号
--@FStartDate nvarchar(1000),
--@FEndDate nvarchar(1000),
@FStartDate2 nvarchar(1000),
@FEndDate2 nvarchar(1000)
)
as
Select
A.FID as 'FFID',
CASE WHEN ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY A.FId) != 1
Then ''
ELSE A.F_contractnumber
END as 'PaperContract', --纸质合同号
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY A.FId) != 1
Then null
ELSE A.FAPPROVEDATE
END as 'FDate', --下单时间
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY A.FId) != 1
Then ''
ELSE W2.区域
END as 'SBU', --SBU(明细区域)
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY A.FId) != 1
Then ''
ELSE W1.FNAME
END as 'Salesman', --业务员
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY A.FId) != 1
Then ''
ELSE
(Select FNAME From T_BAS_PREBDONE_L Where FID = A.F_projectname)
END as 'ProjectName', --项目名称
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then null
ELSE
(Select SUM(a1.FALLAMOUNT_LC) From T_SAL_ORDERENTRY_F a1 JOIN T_SAL_ORDERENTRY a2 on
a1.FENTRYID = a2.FENTRYID Where a1.FID = A.FID AND a2.FMANUALROWCLOSE != '1')
END as 'ContractTotal', --合同总额
CASE WHEN C.FIsSoftware = 1
THEN ISNULL(BB.FALLAMOUNT_LC,0)
ELSE null
END as 'SoftwarePrice', --软件金额
C.FNAME as 'SystemName', --备注(系统名称)
C.F_114 as 'ModelCategories', --型号大类
C.F_116 as 'IndustryLine', --行业线
CASE WHEN --项目所属1
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 1
THEN '建筑楼宇'
WHEN --项目所属2
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 2
THEN '医疗卫生'
WHEN --项目所属3
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 3
THEN '学校'
WHEN --项目所属4
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 4
THEN '文娱康乐'
WHEN --项目所属5
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 5
THEN '市政工程'
WHEN --项目所属6
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 6
THEN '能源'
WHEN --项目所属7
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 7
THEN '工业'
WHEN --项目所属8
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 8
THEN '交通运输'
ELSE ''
END as 'ProjectField', --项目所属领域
B.FNOTE as 'Remark', --备注
CASE WHEN --项目所属1
(Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'Y'
THEN '代理商'
WHEN (Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'N'
THEN '直销'
ELSE ''
END as 'DirectAgent', --直销/代理商
(A.F_contractnumber+C.FSPECIFICATION) as 'ProductsSizeModel' --订单+软件型号
Into #TempTable1
From--关联表
T_SAL_ORDER A
JOIN
T_SAL_ORDERFIN AA
on AA.FID = A.FID
LEFT JOIN
T_ORG_ORGANIZATIONS_L AAA
on A.FSALEORGID = AAA.FORGID
JOIN
T_SAL_ORDERENTRY B
on B.FID = A.FID
JOIN
T_SAL_ORDERENTRY_F BB
on BB.FENTRYID = B.FENTRYID
LEFT JOIN
V_BD_SALESMAN_L W1
on A.FSalerId = W1.fid
LEFT JOIN
(Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!=''
AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) W2
on W1.FNAME = W2.名称
LEFT JOIN
T_BD_CUSTOMER_L K on K.FCUSTID = A.FCUSTID
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型
on W8.FENTRYID = A.F_ORDERCATEGORY
JOIN
(Select aq.F_114,aq.FMATERIALID,qa.FNAME,aq.F_XHDL,aq.F_116,qa.FSpecification,aq.FIsSoftware
From
T_BD_MATERIAL aq
JOIN
T_BD_MATERIAL_L qa
on aq.FMATERIALID = qa.FMATERIALID) C
on B.FMaterialId = C.FMATERIALID
--条件
Where A.FDocumentStatus = 'C' AND W8.FNUMBER != 'Z' AND A.FSALEORGID = 100302
AND B.FMANUALROWCLOSE != '1' AND A.FMANUALCLOSE != '1'
AND (ISNULL(@FSaleOrgId,'') = '' or AAA.FNAME = @FSaleOrgId)
AND (ISNULL(@FCZZHTH,'') = '' or A.F_contractnumber like '%'+@FCZZHTH+'%')
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)))
AND ISNULL(W2.区域,'') != '碳索智控'
AND ISNULL(K.FNAME,'') NOT IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司')
AND ISNULL(W1.FNAME,'') != '兴诺总'
Order by A.FID,A.FAPPROVEDATE desc
Select
A.FID as 'FFID',
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then ''
ELSE A.F_contractnumber
END as 'PaperContract', --纸质合同号
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then null
ELSE A.FAPPROVEDATE
END as 'FDate', --下单时间
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then ''
ELSE W2.区域
END as 'SBU', --SBU(明细区域)
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then ''
ELSE W1.FNAME
END as 'Salesman', --业务员
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then ''
ELSE
(Select FNAME From T_BAS_PREBDONE_L Where FID = A.F_projectname)
END as 'ProjectName', --项目名称
CASE When ROW_NUMBER() OVER (PARTITION BY A.FId ORDER BY B.FSEQ) != 1
Then null
ELSE
ISNULL(AA.FBILLALLAMOUNT_LC,0)
END as 'ContractTotal', --合同总额
CASE WHEN C.FIsSoftware = 1
THEN ISNULL(BB.FALLAMOUNT_LC,0)
ELSE null
END as 'SoftwarePrice', --软件金额
C.FNAME as 'SystemName', --备注(系统名称)
C.F_114 as 'ModelCategories', --型号大类
C.F_116 as 'IndustryLine', --行业线
CASE WHEN --项目所属1
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 1
THEN '建筑楼宇'
WHEN --项目所属2
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 2
THEN '医疗卫生'
WHEN --项目所属3
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 3
THEN '学校'
WHEN --项目所属4
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 4
THEN '文娱康乐'
WHEN --项目所属5
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 5
THEN '市政工程'
WHEN --项目所属6
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 6
THEN '能源'
WHEN --项目所属7
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 7
THEN '工业'
WHEN --项目所属8
(Select
aq.F_Projectfield
From
T_BAS_PREBDTHREE aq
JOIN
T_BAS_PREBDTHREE_L aw
on aq.FID = aw.FID
Where aq.FID = A.F_BON) = 8
THEN '交通运输'
ELSE ''
END as 'ProjectField', --项目所属领域
B.FNOTE as 'Remark', --备注
CASE WHEN --项目所属1
(Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'Y'
THEN '代理商'
WHEN (Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'N'
THEN '直销'
ELSE ''
END as 'DirectAgent', --直销/代理商
(A.F_contractnumber+C.FSPECIFICATION) as 'ProductsSizeModel' --订单+软件型号
Into #TempTable2
From--关联表
T_SAL_ORDER A
JOIN
T_SAL_ORDERFIN AA
on AA.FID = A.FID
LEFT JOIN
(Select * From T_ORG_ORGANIZATIONS_L Where FLOCALEID = 2025) AAA
on A.FSALEORGID = AAA.FORGID
JOIN
T_SAL_ORDERENTRY B
on B.FID = A.FID
JOIN
T_SAL_ORDERENTRY_F BB
on BB.FENTRYID = B.FENTRYID
LEFT JOIN
V_BD_SALESMAN_L W1
on A.FSalerId = W1.fid
LEFT JOIN
(Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!=''
AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) W2
on W1.FNAME = W2.名称
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型
on W8.FENTRYID = A.F_ORDERCATEGORY
JOIN
(Select aq.F_114,aq.FMATERIALID,qa.FNAME,aq.F_XHDL,aq.F_116,qa.FSpecification,aq.FIsSoftware
From
T_BD_MATERIAL aq
JOIN
T_BD_MATERIAL_L qa
on aq.FMATERIALID = qa.FMATERIALID) C
on B.FMaterialId = C.FMATERIALID
--条件
Where A.FDocumentStatus = 'C'
--AND A.FID in (Select q1.FID From T_SAL_ORDER q1 JOIN T_SAL_ORDERENTRY q2 on q1.FID = q2.FId
--JOIN T_BD_MATERIAL q3 on q3.FMATERIALID = q2.FMaterialId Where q3.FISSOFTWARE = 0)
AND (ISNULL(@FSaleOrgId,'') = '' or AAA.FNAME = @FSaleOrgId)
AND (ISNULL(@FCZZHTH,'') = '' or A.F_contractnumber like '%'+@FCZZHTH+'%')
AND W8.FNUMBER != 'Z' AND A.FSALEORGID != 100302 AND B.FMANUALROWCLOSE != '1' AND A.FMANUALCLOSE != '1'
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)))
Order by A.FID,A.FAPPROVEDATE desc
Select * INTO #TempTable3 From #TempTable1 UnION ALL (Select * From #TempTable2)
Select * From #TempTable3 ORder By FFID,FDate desc
DROP TABLE #TempTable1
DROP TABLE #TempTable2
DROP TABLE #TempTable3
Select F_Authorization,* From T_BD_CUSTOMER