a
This commit is contained in:
61
07.珠海英搏尔/Enpower.PRD_MO/Enpower.PRD_MO.csproj
Normal file
61
07.珠海英搏尔/Enpower.PRD_MO/Enpower.PRD_MO.csproj
Normal file
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D0FC5BEC-2362-48BD-90A5-EDE6BA3D3073}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Enpower.PRD_MO</RootNamespace>
|
||||
<AssemblyName>Enpower.PRD_MO</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="SQLserver\PLAN2.sql" />
|
||||
<Content Include="SQLserver\更新计划订单_预测单信息_存储过程.sql" />
|
||||
<Content Include="SQLserver\更新计划订单_预测单信息_存储过程_20240120.sql" />
|
||||
<Content Include="SQLserver\查询生产层号为空的生产用料清单202402261540.sql" />
|
||||
<Content Include="SQLserver\查询语句.sql" />
|
||||
<Content Include="SQLserver\生产订单BOM.sql" />
|
||||
<Content Include="SQLserver\生产订单BOM_创建临时表.sql" />
|
||||
<Content Include="SQLserver\生产订单BOM_查询.sql" />
|
||||
<Content Include="SQLserver\生产订单BOM_选中订单_更新层号_存储过程20240115.sql" />
|
||||
<Content Include="SQLserver\生产订单BOM更新层号_存储过程20240114.sql" />
|
||||
<Content Include="SQLserver\统计需要更新的数据.sql" />
|
||||
<Content Include="SQLserver\英博尔测试20240220.sql" />
|
||||
<Content Include="SQLserver\计划订单更新预测单信息新sql.sql" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
36
07.珠海英搏尔/Enpower.PRD_MO/Properties/AssemblyInfo.cs
Normal file
36
07.珠海英搏尔/Enpower.PRD_MO/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("Enpower.PRD_MO")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Enpower.PRD_MO")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("4593b258-853f-42e5-8805-64d5a0da08a3")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
222
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/PLAN2.sql
Normal file
222
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/PLAN2.sql
Normal file
@@ -0,0 +1,222 @@
|
||||
USE [AIS202401040030]
|
||||
GO
|
||||
/****** Object: StoredProcedure [dbo].[P_UpdatePlan2] Script Date: 2024-01-17 17:38:56 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
-- =============================================
|
||||
-- Author: <20><><EFBFBD><EFBFBD><Author,,Name>
|
||||
-- Create date: 2023-05-23<Create Date,,>
|
||||
-- Description: <20><><EFBFBD>¼ƻ<C2BC><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<Description,,>
|
||||
-- =============================================
|
||||
ALTER PROCEDURE [dbo].[P_UpdatePlan2]
|
||||
(
|
||||
@FBILLNO NVARCHAR(1000)
|
||||
)
|
||||
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @RC int
|
||||
SET @RC = 1;
|
||||
|
||||
WHILE(@RC >0)
|
||||
BEGIN
|
||||
EXEC @RC = PROC_UPDATE_PLAN_BY_PAGE
|
||||
END
|
||||
--SET NOCOUNT ON;
|
||||
|
||||
--SELECT
|
||||
-- A.FBILLNO AS '<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
-- ,A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
-- ,A.F_Source_order_number as '<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
-- ,A.F_FORECASTNUMBER as '<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>'
|
||||
-- ,A.F_Linenumber as '<27>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'
|
||||
-- ,E.FBILLNO AS 'Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>'
|
||||
-- ,D.FSEQ,D.F_Source_order_number as 'Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
-- ,D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
--INTO #TEMP1
|
||||
--FROM T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
--INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
--INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
----inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--WHERE A.F_FORECASTNUMBER=''
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
----where A.FBILLNO = 'MRP00260726'
|
||||
----WHERE A.F_SOURCE_ORDER_LINE_NUMBER = ''
|
||||
|
||||
|
||||
|
||||
-- SELECT
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
--'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'=ISNULL( stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
|
||||
--'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
|
||||
--'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
--into #temp3
|
||||
-- FROM #TEMP1 t
|
||||
-- GROUP BY <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
-- UPDATE T_PLN_PLANORDER SET F_FORECASTNUMBER=B.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>, F_Linenumber=B.Ԥ<>ⵥ<EFBFBD>к<EFBFBD>, F_SOURCE_ORDER_LINE_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>, F_SOURCE_ORDER_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
--FROM T_PLN_PLANORDER A
|
||||
--inner join #temp3 B
|
||||
--ON A.FBILLNO=B.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
----inner join #temp2 f on f.fname = a.FBILLNO
|
||||
|
||||
|
||||
|
||||
--DROP TABLE #TEMP1
|
||||
--DROP TABLE #temp3
|
||||
|
||||
|
||||
--UPDATE A SET A.F_CUSTOMERNAME=D.FCUSTID,A.F_MATERIALCODE=D.FMATERIALID
|
||||
--from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
--INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
--INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
----inner join #temp2 f on f.fname = a.FBILLNO
|
||||
----where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
--update a set F_CUSTOMERNAME=d.FCUSTID,F_MATERIALCODE=d.FMATERIALID,F_FORECASTNUMBER=c.FBILLNO,F_Linenumber=d.FSEQ,F_SOURCE_ORDER_LINE_NUMBER=d.F_SOURCE_ORDER_LINE_NUMBER,F_Source_order_number=d.F_Source_order_number
|
||||
--FROM T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_PLANORDER_B B ON A.FID=B.FID
|
||||
--INNER JOIN T_PLN_FORECAST C ON C .FBILLNO = B.FSALEORDERNO
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D ON D .FID= C.FID AND D.FSEQ=B.FSALEORDERENTRYSEQ
|
||||
----INNER JOIN #temp2 e ON A.FBILLNO = e.Fname
|
||||
----WHERE A.FBILLNO = 'MRP00640407'
|
||||
|
||||
|
||||
|
||||
----UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
----from T_PLN_PLANORDER A
|
||||
----INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
----INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
----INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
|
||||
----where ( a.F_Remark='' )
|
||||
|
||||
|
||||
--UPDATE E SET F_DESCRIPTION=ISNULL(C.FDESCRIPTION ,'' )
|
||||
--from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
|
||||
--INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
--INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
----inner join #temp2 f on f.fname = a.FBILLNO
|
||||
----where ( e.F_DESCRIPTION='' )
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--UPDATE T_PLN_PLANORDER SET F_Remark=
|
||||
-- ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
--from T_PLN_PLANORDER A
|
||||
----inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--where
|
||||
--1=1
|
||||
----and ( a.F_Remark='' )
|
||||
--AND CONVERT(nvarchar(100), a.FCREATEDATE,23) = CONVERT(nvarchar(100), GETDATE(),23)
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
----UPDATE T_PLN_PLANORDER SET F_WAUG_LAYER =
|
||||
----CASE WHEN B.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IS NULL THEN <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ELSE CONCAT(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'-',<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) END
|
||||
---- from T_PLN_PLANORDER A
|
||||
---- inner join
|
||||
----(
|
||||
----select A.FID, dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER,
|
||||
----A.F_MATERIALCODE,a.FBILLNO as '1',b.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' from T_PLN_PLANORDER A
|
||||
----INNER JOIN T_PLN_PLANORDER B ON A.F_FORECASTNUMBER=B.F_FORECASTNUMBER AND A.F_LINENUMBER=B.F_LINENUMBER AND A.F_MATERIALCODE =B.FMATERIALID
|
||||
----INNER JOIN #temp2 C ON C.Fname=A.FBILLNO
|
||||
------WHERE a.F_WAUG_LAYER = ''
|
||||
|
||||
----) B ON A.FID = B.FID
|
||||
|
||||
----DROP TABLE #temp2
|
||||
|
||||
|
||||
|
||||
|
||||
------select a.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>',A.F_Source_order_number as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
------, A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>',
|
||||
------E.FBILLNO AS 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.FSEQ,D.F_Source_order_number as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
------INTO #TEMP1
|
||||
------from T_PLN_PLANORDER A
|
||||
------INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
------INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
------INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
------INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
------WHERE A.F_FORECASTNUMBER=''
|
||||
------AND A.FBILLNO = @FBILLNO
|
||||
--------where A.FBILLNO = 'MRP00260726'
|
||||
--------WHERE A.F_SOURCE_ORDER_LINE_NUMBER = ''
|
||||
|
||||
------ --select * from #TEMP1
|
||||
--------
|
||||
------UPDATE A SET A.F_FORECASTNUMBER=B.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>,A.F_Linenumber=B.Ԥ<>ⵥ<EFBFBD>к<EFBFBD>,a.F_SOURCE_ORDER_LINE_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD>,a.F_SOURCE_ORDER_NUMBER=b.<2E><><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
------FROM T_PLN_PLANORDER A
|
||||
------inner join
|
||||
------(
|
||||
------SELECT
|
||||
------<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
------'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'=ISNULL( stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
|
||||
------'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),''),
|
||||
------'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL( stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
------ FROM #TEMP1 t
|
||||
------ GROUP BY <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD>
|
||||
------) B
|
||||
------ON A.FBILLNO=B.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
------WHERE A.F_FORECASTNUMBER=''
|
||||
------AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
|
||||
------DROP TABLE #TEMP1
|
||||
|
||||
|
||||
----UPDATE A SET A.F_CUSTOMERNAME=D.FCUSTID,A.F_MATERIALCODE=D.FMATERIALID
|
||||
----from T_PLN_PLANORDER A
|
||||
----INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
----INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
----INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
----INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
----where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
------UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
------from T_PLN_PLANORDER A
|
||||
------INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
------INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
------INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
|
||||
------where ( a.F_Remark='' )
|
||||
|
||||
|
||||
----UPDATE E SET F_DESCRIPTION=ISNULL(C.FDESCRIPTION ,'' )
|
||||
----from T_PLN_PLANORDER A
|
||||
----INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
|
||||
----INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
----INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
----where ( e.F_DESCRIPTION='' )
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
----UPDATE T_PLN_PLANORDER SET F_Remark=
|
||||
---- ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
----from T_PLN_PLANORDER A
|
||||
----where
|
||||
----1=1
|
||||
----and ( a.F_Remark='' )
|
||||
----AND CONVERT(nvarchar(100), a.FCREATEDATE,23) = CONVERT(nvarchar(100), GETDATE(),23)
|
||||
----AND A.FBILLNO = @FBILLNO
|
||||
|
||||
|
||||
|
||||
END
|
||||
148
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程.sql
Normal file
148
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程.sql
Normal file
@@ -0,0 +1,148 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_PLAN_BY_PAGE')
|
||||
DROP PROCEDURE dbo.PROC_UPDATE_PLAN_BY_PAGE;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_UPDATE_PLAN_BY_PAGE
|
||||
@ListCount int output
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET @ListCount = 0;
|
||||
SELECT
|
||||
TOP 5000
|
||||
A.FID
|
||||
,A.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.FSALENOROW,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
,A.F_SOURCE_ORDER_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'
|
||||
,E.FBILLNO AS 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.FSEQ,D.F_SOURCE_ORDER_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
INTO #TEMP1
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID = C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST E ON E .FID=D.FID
|
||||
WHERE A.F_FORECASTNUMBER = ''
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
--AND A.FBILLNO = 'MRP00260726'
|
||||
|
||||
SELECT FID
|
||||
INTO #BillNoSet
|
||||
FROM #TEMP1
|
||||
GROUP BY FID
|
||||
|
||||
CREATE INDEX [#BillNoSet_INDEX_FID] ON #BillNoSet(FID);
|
||||
|
||||
SELECT @ListCount = count(1) FROM #BillNoSet
|
||||
--SELECT @ListCount
|
||||
IF(@ListCount > 0)
|
||||
BEGIN
|
||||
SELECT
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
t.FID
|
||||
,Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'=ISNULL(stuff((select ','+CONVERT(nvarchar(100), FSEQ) from #TEMP1 where <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> = t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
,'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
,'<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'=ISNULL(stuff((select distinct ','+CONVERT(nvarchar(100), Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>) from #TEMP1 where Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD>۶<EFBFBD><DBB6><EFBFBD><EFBFBD>к<EFBFBD><>'' and <20>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=t.<2E>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> and Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> =t.Ԥ<>ⵥ<EFBFBD><E2B5A5><EFBFBD><EFBFBD> for xml path('')),1,1,''),'')
|
||||
INTO #TEMP3
|
||||
FROM #TEMP1 t
|
||||
WHERE t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = ''
|
||||
GROUP BY t.FID,t.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
UPDATE T_PLN_PLANORDER
|
||||
SET F_FORECASTNUMBER = B.Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,F_Linenumber = B.Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>
|
||||
,F_SOURCE_ORDER_LINE_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,F_SOURCE_ORDER_NUMBER = b.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FROM
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN #TEMP3 B ON A.FID=B.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
|
||||
--DROP TABLE #TEMP1
|
||||
DROP TABLE #temp3
|
||||
|
||||
UPDATE A SET
|
||||
A.F_CUSTOMERNAME = D.FCUSTID
|
||||
,A.F_MATERIALCODE = D.FMATERIALID
|
||||
from
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e.fid=d.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--where (a.F_CUSTOMERNAME=0 or a.F_MATERIALCODE=0 )
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
UPDATE A
|
||||
SET F_CUSTOMERNAME = D.FCUSTID
|
||||
,F_MATERIALCODE = D.FMATERIALID
|
||||
,F_FORECASTNUMBER = C.FBILLNO
|
||||
,F_LINENUMBER = D.FSEQ
|
||||
,F_SOURCE_ORDER_LINE_NUMBER = D.F_SOURCE_ORDER_LINE_NUMBER
|
||||
,F_SOURCE_ORDER_NUMBER = D.F_SOURCE_ORDER_NUMBER
|
||||
FROM
|
||||
T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_PLANORDER_B B ON A.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECAST C ON C .FBILLNO = B.FSALEORDERNO
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D .FID= C.FID AND D.FSEQ=B.FSALEORDERENTRYSEQ
|
||||
--INNER JOIN #temp2 e ON A.FBILLNO = e.Fname
|
||||
--WHERE A.FBILLNO = 'MRP00640407'
|
||||
|
||||
--UPDATE A SET A.F_Remark=ISNULL( dbo.GetForecast(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
--from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
--INNER JOIN T_PLN_FORECAST_L C ON C.FID=B.FID
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D on D.FID=B.FID AND D.FSEQ=A.F_Linenumber
|
||||
--where ( a.F_Remark='' )
|
||||
|
||||
UPDATE E SET F_DESCRIPTION = ISNULL(C.FDESCRIPTION ,'' )
|
||||
from T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
INNER JOIN T_PLN_PLANORDER_L E ON E.FID=A.FID
|
||||
INNER JOIN T_PLN_FORECAST B ON B.FBILLNO=A.F_FORECASTNUMBER
|
||||
INNER JOIN T_PLN_FORECAST_L C ON C.FID = B.FID
|
||||
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
--where ( e.F_DESCRIPTION='' )
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
UPDATE T_PLN_PLANORDER
|
||||
SET F_REMARK = ISNULL( DBO.GETFORECAST(A.F_FORECASTNUMBER ,A.F_LINENUMBER),'')
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN #BillNoSet tt ON tt.FID = A.FID
|
||||
--inner join #temp2 f on f.fname = a.FBILLNO
|
||||
WHERE 1=1
|
||||
--and ( a.F_Remark='' )
|
||||
--AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = CONVERT(nvarchar(100),GETDATE(),23)
|
||||
AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = CONVERT(nvarchar(100),'2024-01-17',23)
|
||||
--AND A.FBILLNO = @FBILLNO
|
||||
|
||||
--UPDATE T_PLN_PLANORDER SET F_WAUG_LAYER =
|
||||
--CASE WHEN B.<EFBFBD><EFBFBD><EFBFBD><EFBFBD> IS NULL THEN <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ELSE CONCAT(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,'-',<EFBFBD><EFBFBD><EFBFBD><EFBFBD>) END
|
||||
-- from T_PLN_PLANORDER A
|
||||
-- inner join
|
||||
--(
|
||||
--select A.FID, dbo.GetBomSeq( B .FBOMID,a.FMATERIALID) as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>', A.FMATERIALID,B.FBOMID,A.f_WAUG_LAYER,A.F_FORECASTNUMBER,A.F_LINENUMBER,
|
||||
--A.F_MATERIALCODE,a.FBILLNO as '1',b.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' from T_PLN_PLANORDER A
|
||||
--INNER JOIN T_PLN_PLANORDER B ON A.F_FORECASTNUMBER=B.F_FORECASTNUMBER AND A.F_LINENUMBER=B.F_LINENUMBER AND A.F_MATERIALCODE =B.FMATERIALID
|
||||
--INNER JOIN #temp2 C ON C.Fname=A.FBILLNO
|
||||
----WHERE a.F_WAUG_LAYER = ''
|
||||
|
||||
--) B ON A.FID = B.FID
|
||||
|
||||
--DROP TABLE #temp2
|
||||
END
|
||||
|
||||
DROP TABLE #TEMP1
|
||||
DROP TABLE #BillNoSet
|
||||
|
||||
SET NOCOUNT OFF
|
||||
END
|
||||
187
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程_20240120.sql
Normal file
187
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/更新计划订单_预测单信息_存储过程_20240120.sql
Normal file
@@ -0,0 +1,187 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_PLAN_20240120')
|
||||
DROP PROCEDURE dbo.PROC_UPDATE_PLAN_20240120;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_UPDATE_PLAN_20240120
|
||||
AS
|
||||
BEGIN
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t2.FID 'FORECAST_ID'
|
||||
,t2e.FENTRYID 'FORECASTENTRY_ID'
|
||||
,t2.FBILLNO 'F_FORECASTNUMBER'
|
||||
,t2e.FSEQ 'F_LINENUMBER'
|
||||
,t2e.FCUSTID 'F_CUSTOMERNAME'
|
||||
,t2e.FMATERIALID 'F_MATERIALCODE' --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t2e.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t2e.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,t0.F_REMARK
|
||||
INTO #TEMP_PLANORDER_ID_LIST
|
||||
FROM T_PLN_PLANORDER t0
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0.FID
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID = t1e.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FENTRYID = t1.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST t2 on t2.fid = t2e.FID
|
||||
WHERE 1 = 1
|
||||
AND t0.F_FORECASTNUMBER = ''
|
||||
--AND CONVERT(nvarchar(100),t0.FCREATEDATE,23) = '2024-01-18'
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_ID_LIST_INDEX_FID ON #TEMP_PLANORDER_ID_LIST(FID);
|
||||
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.FORECASTENTRY_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_LINENUMBER
|
||||
,t0.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,ISNULL(t1_l.FDESCRIPTION,'') AS F_DESCRIPTION
|
||||
--,t1_l.FDESCRIPTION F_DESCRIPTION
|
||||
,ISNULL(t1e_l.FDESCRIPTION,'') AS F_REMARK --<EFBFBD><EFBFBD><EFBFBD>屸ע
|
||||
--,t1e_l.FDESCRIPTION F_REMARK
|
||||
,t2.FNUMBER 'MATERIAL_NUMBER'
|
||||
,t2_l.FNAME 'MATERIAL_NAME'
|
||||
,t3.TOTAL
|
||||
INTO #TEMP_PLANORDER_RESERVELINK
|
||||
|
||||
FROM #TEMP_PLANORDER_ID_LIST t0
|
||||
INNER JOIN (SELECT FID,COUNT(1) TOTAL FROM #TEMP_PLANORDER_ID_LIST GROUP BY FID ) t3 on t3.FID = t0.FID
|
||||
LEFT JOIN T_PLN_FORECAST_L t1_l on t0.FORECAST_ID = t1_l.FID AND t1_l.FLOCALEID = 2052
|
||||
LEFT JOIN T_PLN_FORECASTENTRY_L t1e_l on t1e_l.FENTRYID = t0.FORECASTENTRY_ID AND t1e_l.FLOCALEID = 2052
|
||||
LEFT JOIN T_BD_MATERIAL t2 on t0.F_MATERIALCODE = t2.FMATERIALID
|
||||
LEFT JOIN T_BD_MATERIAL_L t2_l on t0.F_MATERIALCODE = t2_l.FMATERIALID AND t2_l.FLOCALEID = 2052
|
||||
WHERE 1=1
|
||||
--AND t0.F_FORECASTNUMBER = ''
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_RESERVELINK_INDEX ON #TEMP_PLANORDER_RESERVELINK(FID);
|
||||
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Դ---
|
||||
UPDATE t0
|
||||
SET t0.F_FORECASTNUMBER = tt.F_FORECASTNUMBER
|
||||
,t0.F_LINENUMBER = tt.F_LINENUMBER
|
||||
,t0.F_CUSTOMERNAME = tt.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE = tt.F_MATERIALCODE
|
||||
,t0.F_REMARK = tt.F_REMARK
|
||||
,t0.F_MATERIALCODESHOW = tt.MATERIAL_NUMBER
|
||||
,t0.F_MATERIALNAMESHOW = tt.MATERIAL_NAME
|
||||
FROM T_PLN_PLANORDER t0
|
||||
INNER JOIN #TEMP_PLANORDER_RESERVELINK tt on t0.FID = tt.FID AND tt.TOTAL = 1
|
||||
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Դ---
|
||||
UPDATE t0_l
|
||||
SET t0_l.F_DESCRIPTION = tt.F_DESCRIPTION
|
||||
FROM T_PLN_PLANORDER_L t0_l
|
||||
INNER JOIN #TEMP_PLANORDER_RESERVELINK tt on t0_l.FID = tt.FID AND tt.TOTAL = 1
|
||||
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.FORECASTENTRY_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,DENSE_RANK() over(partition BY t0.FID order by t0.FORECAST_ID) 'FORECASTNUMBER_SEQ'
|
||||
,t0.F_LINENUMBER
|
||||
,ROW_NUMBER() over(partition BY t0.FID,t0.FORECAST_ID order by t0.F_LINENUMBER) 'LINENUMBER_SEQ'
|
||||
,t0.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,t0.F_REMARK
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.MATERIAL_NUMBER
|
||||
,t0.MATERIAL_NAME
|
||||
,t0.TOTAL
|
||||
,DENSE_RANK() over(partition BY t0.FID order by t0.F_MATERIALCODE) 'DENSE_RANK_NUM'
|
||||
INTO #TEMP_PLANORDER_RESERVELINK2
|
||||
FROM
|
||||
#TEMP_PLANORDER_RESERVELINK t0
|
||||
WHERE 1 = 1
|
||||
AND TOTAL > 1
|
||||
ORDER BY FID
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_RESERVELINK2_INDEX ON #TEMP_PLANORDER_RESERVELINK2(FID);
|
||||
|
||||
UPDATE t0 SET t0.F_MATERIALCODE = 0,t0.F_CUSTOMERNAME = 0
|
||||
FROM #TEMP_PLANORDER_RESERVELINK2 t0,(SELECT FID FROM #TEMP_PLANORDER_RESERVELINK2 WHERE DENSE_RANK_NUM = 2) t1 WHERE t0.FID = t1.FID
|
||||
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
,ISNULL(stuff((select ','+ CONVERT(nvarchar(100), tt.F_LINENUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_LINENUMBER'
|
||||
,ISNULL(stuff((select distinct ';'+ ISNULL(tt.F_REMARK,'') from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_REMARK'
|
||||
,ISNULL(stuff((select distinct ','+ tt.MATERIAL_NUMBER from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'MATERIAL_NUMBER'
|
||||
,ISNULL(stuff((select distinct ','+ tt.MATERIAL_NAME from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'MATERIAL_NAME'
|
||||
,ISNULL(stuff((select distinct ','+ CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_NUMBER'
|
||||
,ISNULL(stuff((select distinct ','+ CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_LINE_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_LINE_NUMBER'
|
||||
INTO #TEMP
|
||||
FROM #TEMP_PLANORDER_RESERVELINK2 t0
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
CREATE INDEX #TEMP_INDEX ON #TEMP(FID);
|
||||
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
,ISNULL(stuff((select ';'+ CONVERT(nvarchar(100), tt.F_LINENUMBER) from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_LINENUMBER'
|
||||
,ISNULL(stuff((select ';'+ CONVERT(nvarchar(100), tt.F_FORECASTNUMBER) from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_FORECASTNUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + tt.MATERIAL_NUMBER from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'MATERIAL_NUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + tt.MATERIAL_NAME from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'MATERIAL_NAME'
|
||||
,ISNULL(stuff((select distinct ';' + tt.F_REMARK from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_REMARK'
|
||||
,ISNULL(stuff((select distinct ';' + ISNULL(tt.F_DESCRIPTION,'') from #TEMP tt where tt.FID = t0.FID for xml path('')),1,1,''),'') 'F_DESCRIPTION'
|
||||
,ISNULL(stuff((select distinct ';' + CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_NUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_LINE_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_LINE_NUMBER'
|
||||
INTO #TEMP2
|
||||
FROM #TEMP t0
|
||||
--WHERE t0.fbillno ='MRP01679279'
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
CREATE INDEX #TEMP2_INDEX ON #TEMP2(FID);
|
||||
|
||||
--UPDATE #TEMP2 SET F_REMARK = '' WHERE F_REMARK = ';'
|
||||
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ--
|
||||
UPDATE t0
|
||||
SET t0.F_FORECASTNUMBER = tt.F_FORECASTNUMBER
|
||||
,t0.F_LINENUMBER = tt.F_LINENUMBER
|
||||
,t0.F_CUSTOMERNAME = tt.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE = tt.F_MATERIALCODE
|
||||
,t0.F_REMARK = tt.F_REMARK
|
||||
,t0.F_MATERIALCODESHOW = tt.MATERIAL_NUMBER
|
||||
,t0.F_MATERIALNAMESHOW = tt.MATERIAL_NAME
|
||||
FROM T_PLN_PLANORDER t0
|
||||
INNER JOIN #TEMP2 tt on t0.FID = tt.FID --AND tt.TOTAL = 1
|
||||
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ--
|
||||
UPDATE t0_l
|
||||
SET t0_l.F_DESCRIPTION = tt.F_DESCRIPTION
|
||||
FROM T_PLN_PLANORDER_L t0_l
|
||||
INNER JOIN #TEMP2 tt on t0_l.FID = tt.FID --AND tt.TOTAL = 1
|
||||
|
||||
SELECT * FROM #TEMP2
|
||||
DROP TABLE #TEMP
|
||||
DROP TABLE #TEMP2
|
||||
DROP TABLE #TEMP_PLANORDER_ID_LIST
|
||||
DROP TABLE #TEMP_PLANORDER_RESERVELINK
|
||||
DROP TABLE #TEMP_PLANORDER_RESERVELINK2
|
||||
END
|
||||
@@ -0,0 +1,19 @@
|
||||
SELECT t0.FBILLNO,t0.FID,t0e.FENTRYID
|
||||
,t1.FDATE,t0.FMOBILLNO
|
||||
,t0e.FFORECASTGROUP,t0e.FFORECASTGROUPFRIST
|
||||
,t1e.FFORECASTGROUPFRIST AS MOGROUPFRIST,t1e.FFORECASTGROUP AS MOGROUP,
|
||||
--UPDATE t0e SET t0e.FFORECASTGROUP = t1e.FFORECASTGROUP
|
||||
-- ,t0e.FFORECASTGROUPFRIST =
|
||||
CASE
|
||||
WHEN CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0) = 0
|
||||
THEN t1e.FFORECASTGROUP
|
||||
ELSE SUBSTRING(t1e.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( t1e.FFORECASTGROUP,'_','-') ,0))
|
||||
END
|
||||
FROM T_PRD_PPBOM t0
|
||||
INNER JOIN T_PRD_PPBOMENTRY t0e on t0.FID = t0e.FID
|
||||
INNER JOIN T_PRD_MO t1 on t1.FID = t0.FMOID
|
||||
INNER JOIN T_PRD_MOENTRY t1e on t1e.FID = t0.FMOID
|
||||
WHERE 1 = 1 AND t1e.FFORECASTGROUP != ''
|
||||
AND t0e.FFORECASTGROUP = ''
|
||||
AND t0e.FFORECASTGROUPFRIST != t1e.FFORECASTGROUPFRIST
|
||||
ORDER BY t1.FDATE desc
|
||||
117
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/查询语句.sql
Normal file
117
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/查询语句.sql
Normal file
@@ -0,0 +1,117 @@
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯstart--
|
||||
SELECT
|
||||
--TOP 5000
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FBOMID
|
||||
,t0.FMATERIALID --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0_b.FSALEORDERID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0_b.FSALEORDERENTRYID --<EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0_b.FSALEORDERENTRYSEQ --<EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_Linenumber 'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>#'
|
||||
,t0_b.FSALEORDERNO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,t1.FBILLNO 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t0.F_FORECASTNUMBER 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>#'
|
||||
,t1e.FCUSTID
|
||||
,t0.F_CUSTOMERNAME
|
||||
,t1e.FMATERIALID AS F_MATERIALCODE --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_SOURCE_ORDER_LINE_NUMBER
|
||||
,t1e.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_SOURCE_ORDER_NUMBER
|
||||
,t1e.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,ISNULL(t1_l.FDESCRIPTION,'') AS F_DESCRIPTION --<EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ע
|
||||
,t0_l.F_DESCRIPTION
|
||||
,ISNULL(t1e_l.FDESCRIPTION,'') AS F_REMARK --<EFBFBD><EFBFBD><EFBFBD>屸ע
|
||||
,t0.F_REMARK
|
||||
FROM
|
||||
T_PLN_PLANORDER t0
|
||||
INNER JOIN T_PLN_PLANORDER_B t0_b on t0.FID = t0_b.FID
|
||||
INNER JOIN T_PLN_PLANORDER_L t0_l on t0.FID = t0_l.FID
|
||||
INNER JOIN T_PLN_FORECAST t1 on t0_b.FSALEORDERID = t1.FID --Ԥ<EFBFBD>ⵥ
|
||||
LEFT JOIN T_PLN_FORECAST_L t1_l on t1_l.FID = t0_b.FSALEORDERID --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>Ϣ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t1e on t1e.FID = t0_b.FSALEORDERID AND t0_b.FSALEORDERENTRYID = t1e.FENTRYID --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
LEFT JOIN T_PLN_FORECASTENTRY_L t1e_l on t1e_l.FENTRYID = t0_b.FSALEORDERENTRYID --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>屸ע<EFBFBD><EFBFBD>Ϣ
|
||||
--INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = t0.FBILLNO
|
||||
--INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID --Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
|
||||
--INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
--INNER JOIN T_PLN_FORECAST E ON E .FID=D.FID
|
||||
WHERE 1 = 1
|
||||
AND t0.F_FORECASTNUMBER = ''
|
||||
AND t0_b.FDEMANDTYPE = 2
|
||||
AND CONVERT(nvarchar(100),t0.FCREATEDATE,23) = '2024-01-18'
|
||||
--AND t0.FCOMPUTERNO ='MRP000401'
|
||||
--AND t0_b.FSALEORDERID = 0
|
||||
--ORDER BY t0_b.FSALEORDERID,t0_b.FSALEORDERENTRYSEQ
|
||||
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯend--
|
||||
|
||||
--<2D>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯstart--
|
||||
SELECT A.FID
|
||||
into #temp
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
WHERE 1=1
|
||||
--AND A.F_FORECASTNUMBER=''
|
||||
AND A.FCOMPUTERNO ='MRP000401'
|
||||
AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = '2024-01-18'
|
||||
GROUP BY A.FID
|
||||
HAVing count(1) > 1
|
||||
CREATE INDEX [#temp_INDEX_FID] ON #temp(FID);
|
||||
SELECT
|
||||
t0_b.FSALEORDERID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0_b.FSALEORDERENTRYID --<EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0_b.FSALEORDERENTRYSEQ --<EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
--,t0.F_Linenumber 'Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>#'
|
||||
,t0_b.FSALEORDERNO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,t0.F_FORECASTNUMBER 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>#'
|
||||
,d.FSEQ
|
||||
,case when t0_b.FSALEORDERENTRYSEQ = d.FSEQ then 1 else 0 end
|
||||
,t0.FBILLNO
|
||||
--SELECt *
|
||||
FROM T_PLN_PLANORDER t0
|
||||
INNER JOIN T_PLN_PLANORDER_B t0_b on t0.FID = t0_b.FID
|
||||
--INNER JOIN T_PLN_FORECAST t1 on t0_b.FSALEORDERID = t1.FID --Ԥ<EFBFBD>ⵥ
|
||||
--LEFT JOIN T_PLN_FORECAST_L t1_l on t1_l.FID = t0_b.FSALEORDERID --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>Ϣ
|
||||
--INNER JOIN T_PLN_FORECASTENTRY t1e on t1e.FID = t0_b.FSALEORDERID AND t0_b.FSALEORDERENTRYID = t1e.FENTRYID --and t0_b.FSALEORDERENTRYSEQ = t1e.FSEQ--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = t0.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
WHERE exists (SELECT 1 FROM #temp tt WHERE tt.FID = t0.FID) and (t0_b.FSALEORDERENTRYSEQ != d.FSEQ or t0_b.FSALEORDERNO != e.FBILLNO)
|
||||
|
||||
DROP TABLE #TEMP
|
||||
--<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯend--
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶβ<D6B6>ѯstart--
|
||||
|
||||
SELECT
|
||||
a.FBILLNO AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.FSALENOROW
|
||||
,A.F_SOURCE_ORDER_LINE_NUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
,A.F_Source_order_number as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_FORECASTNUMBER as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,A.F_Linenumber as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⵥ<EFBFBD>к<EFBFBD>'
|
||||
,E.FBILLNO AS 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.FSEQ,D.F_Source_order_number as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,D.F_SOURCE_ORDER_LINE_NUMBER as 'Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>'
|
||||
--UPDATE A SET A.F_Forecastnumber = '',A.F_Linenumber='',A.F_MaterialCode = 0,A.F_Remark = ''
|
||||
SELECT A.*
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
WHERE 1=1
|
||||
AND A.F_FORECASTNUMBER=''
|
||||
AND a.fbillno='MRP01348067'
|
||||
AND CONVERT(nvarchar(100),a.FCREATEDATE,23) = '2024-01-18'
|
||||
--AND A.F_Forecastnumber ='N+30000028'
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶβ<EFBFBD>ѯend--
|
||||
|
||||
'WO2401220106,WO2401220362,WO2401220363,WO2401220364,WO2401220365,WO2401220366,WO2401220367,WO2401220368,WO2401220369,WO2401220370,WO2401220371,WO2401220372,WO2401220373,WO2401220374,WO2401220375,WO2401220376,WO2401220377,WO2401220378'
|
||||
49
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM.sql
Normal file
49
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
SELECT
|
||||
t0e.FID
|
||||
,t0.FBILLNO
|
||||
,t0e.FENTRYID
|
||||
,t0e.FMATERIALID
|
||||
,t0e.FBomId MOBomId
|
||||
,t1.FSRCFORMID '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCBILLNO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,t2e.FSEQ
|
||||
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t2e.FMATERIALID OMATERAILID
|
||||
,'' BOMLevel
|
||||
/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
--INTO #_MO
|
||||
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID=t0e.FID AND t1e.FINTSUPPLYENTRYID=t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID='PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID=t1.FSRCINTERID AND t2e.FENTRYID=t1.FSRCENTRYID--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WHERE 1 = 1
|
||||
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e.FFORECASTGROUP='' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
|
||||
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
|
||||
--CREATE INDEX [#PLid] ON #_MO (FSRCINTERID ASC,FSRCENTRYID ASC) /*<2A><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
--CREATE INDEX [#BomId] ON #_MO (FBomId ASC) /*BOM<4F>༶չ<E0BCB6><D5B9><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>ſ<EFBFBD><C5BF><EFBFBD>*/
|
||||
|
||||
--SELECT FSRCINTERID,FSRCENTRYID,MO2.FBILLNO AS '<EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>'
|
||||
--into #n_mo
|
||||
--FROM #_MO MO INNER JOIN T_PRD_MOENTRY MO1 ON MO1.FID=MO.FID AND MO1.FENTRYID=MO.FENTRYID
|
||||
--INNER JOIN T_PRD_MO MO2 ON MO2.FID=MO.FID
|
||||
--CREATE INDEX [#n_mo] ON #n_mo (FSRCINTERID ASC,FSRCENTRYID ASC) /*<2A><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
|
||||
----update mo set BOMLevel=nmo.<EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>+'-'+'<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>'
|
||||
----from #_MO mo left join #n_mo nmo on nmo.FSRCINTERID=mo.FSRCINTERID and nmo.FSRCENTRYID=mo.FSRCENTRYID
|
||||
--/*-------------<2D><>dbo.GetBomSeq<65><71>Ϊ<EFBFBD><CEAA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶεı<CEB5>-----------------
|
||||
-- <09><><EFBFBD><EFBFBD>BOM_ID(<28><>Ӧ#_MO<4D>е<EFBFBD>FBomId)<29><>
|
||||
-- <09><>BOM_ID(<28><>Ӧ#_MO<4D>е<EFBFBD>MOBomId)<29><>
|
||||
-- <09><><EFBFBD><EFBFBD>
|
||||
----------------<2D><>dbo.GetBomSeq<65><71>Ϊ<EFBFBD><CEAA>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD>̣<EFBFBD><CCA3><EFBFBD><EFBFBD>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶεı<CEB5>------------------*/
|
||||
----select dbo.GetBomSeq(7293846,3994919)
|
||||
|
||||
--select * from #_MO
|
||||
|
||||
--DROP TABLE #_MO
|
||||
--DROP TABLE #n_mo
|
||||
186
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM_创建临时表.sql
Normal file
186
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM_创建临时表.sql
Normal file
@@ -0,0 +1,186 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_BOMLEVEL')
|
||||
DROP PROCEDURE dbo.PROC_UPDATE_BOMLEVEL;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_UPDATE_BOMLEVEL
|
||||
AS
|
||||
BEGIN
|
||||
CREATE TABLE #TMP_MO --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
(
|
||||
FID INT
|
||||
,FBILLNO VARCHAR(255)
|
||||
,FDATE DATE
|
||||
,FENTRYID INT
|
||||
,FMATERIALID INT
|
||||
,MOBOMID INT
|
||||
,FSRCFORMID VARCHAR(255)
|
||||
,FSRCBILLNO VARCHAR(255)
|
||||
,FSRCINTERID INT
|
||||
,FSRCENTRYID INT
|
||||
,FSEQ INT
|
||||
,FBOMID INT
|
||||
,BOMLEVEL VARCHAR(255)
|
||||
,TOPBILLNO VARCHAR(255)
|
||||
);
|
||||
CREATE INDEX [#TMP_MO_FID] ON #TMP_MO(FID);
|
||||
|
||||
--INSERT INTO #TMP_MO
|
||||
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
SELECT
|
||||
t0e.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FDATE
|
||||
,t0e.FENTRYID
|
||||
,t0e.FMATERIALID
|
||||
,t0e.FBomId MOBomId
|
||||
,t1.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,t2e.FSEQ
|
||||
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t2e.FMATERIALID OMATERAILID
|
||||
,t0e.FFORECASTGROUP
|
||||
,'' BOMLevel
|
||||
INTO #TMP_MO_PART
|
||||
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0e.FID AND t1e.FINTSUPPLYENTRYID = t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID = 'PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID = t1.FSRCINTERID AND t2e.FENTRYID = t1.FSRCENTRYID--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WHERE 1 = 1
|
||||
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
--AND t0e.FFORECASTGROUP='' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
|
||||
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
|
||||
INSERT INTO #TMP_MO
|
||||
SELECT
|
||||
tt.FID
|
||||
,tt.FBILLNO
|
||||
,tt.FDATE
|
||||
,tt.FENTRYID
|
||||
,tt.FMATERIALID
|
||||
,tt.MOBomId
|
||||
,tt.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,tt.FSEQ
|
||||
,tt.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.BOMLevel
|
||||
,t0.FBILLNO
|
||||
--into #TMP_MO
|
||||
FROM
|
||||
#TMP_MO_PART tt
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FBILLNO,FDATE,len(FBILLNO) Billnolen
|
||||
,ROW_NUMBER() over(partition BY MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FDATE,len(FBILLNO) order by FBILLNO) ROWID
|
||||
FROM
|
||||
#TMP_MO_PART
|
||||
WHERE FBOMID =MOBomId
|
||||
) t0 ON tt.FBOMID = t0.FBOMID
|
||||
AND tt.FSEQ = t0.FSEQ
|
||||
AND tt.FSRCINTERID = t0.FSRCINTERID
|
||||
AND tt.FSRCENTRYID = t0.FSRCENTRYID
|
||||
AND tt.FDATE = t0.FDATE
|
||||
AND t0.ROWID =1
|
||||
AND t0.Billnolen = len(tt.FBILLNO)
|
||||
WHERE
|
||||
tt.FFORECASTGROUP = ''
|
||||
|
||||
CREATE TABLE #TMP_TOP_BOM_SET(
|
||||
FID int
|
||||
,FNUMBER varchar(80)
|
||||
,FMATERIALID int
|
||||
,FSEQ int
|
||||
,BOMLEVEL int
|
||||
,TOPID int
|
||||
,showlevel varchar(80)
|
||||
,oId int
|
||||
)
|
||||
CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID);
|
||||
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.FID order by t0.FMATERIALID)
|
||||
,1 'BOMLEVEL'
|
||||
,t0.FID AS 'TOPID'
|
||||
,''
|
||||
,t0.FID
|
||||
FROM
|
||||
T_ENG_BOM t0
|
||||
INNER JOIN #TMP_MO t3 on t3.FBOMID = t0.FID
|
||||
WHERE 1 = 1
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
|
||||
|
||||
DECLARE @num INT,@level int,@LoopCount int
|
||||
SET @num = 1
|
||||
SET @level =1
|
||||
SET @LoopCount = 0;
|
||||
WHILE (@num <> 0 AND @LoopCount < 30)
|
||||
BEGIN
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t3.FID
|
||||
,t3.FNUMBER
|
||||
,t3.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.TOPID order by t0.fseq)
|
||||
,t0.BOMLEVEL + 1
|
||||
,t0.TOPID
|
||||
,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid order by t1.fseq) as VARCHAR))
|
||||
,t0.FID
|
||||
FROM
|
||||
#TMP_TOP_BOM_SET t0
|
||||
INNER JOIN T_ENG_BOMCHILD t1 on t0.FID = t1.FID
|
||||
INNER JOIN T_BD_MATERIALBASE t2 on t2.FMATERIALID = t1.FMATERIALID
|
||||
INNER JOIN T_ENG_BOM t3 on t1.FMATERIALID = t3.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND (t2.FERPCLSID = 2 )
|
||||
AND t0.BOMLEVEL = @level
|
||||
|
||||
SET @num = @@ROWCOUNT
|
||||
SET @level += 1
|
||||
SET @LoopCount += 1
|
||||
END
|
||||
|
||||
SELECT
|
||||
ROW_NUMBER() over(partition BY TOPID order by FSEQ) AS rowId,
|
||||
*
|
||||
INTO #TMP_TOP_BOM_GROUP
|
||||
FROM #TMP_TOP_BOM_SET
|
||||
WHERE 1 = 1
|
||||
GROUP BY FID,FNUMBER,FMATERIALID,FSEQ,BOMLEVEL,TOPID,showlevel,oId
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE t0 SET t0.BOMLEVEL = t0.TOPBILLNO + t1.showlevel
|
||||
FROM #TMP_MO t0 INNER JOIN #TMP_TOP_BOM_GROUP t1 on t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
||||
--UPDATE t0e SET t0e.FFORECASTGROUP = t1.BOMLEVEL
|
||||
--FROM T_PRD_MOENTRY t0e INNER JOIN #TMP_MO t1 on t0e.FBOMID = t1.MOBOMID AND t0e.FENTRYID = t1.FENTRYID
|
||||
|
||||
SELECT t0.*,t1.fnumber
|
||||
FROM #TMP_TOP_BOM_GROUP t0 INNER JOIN T_BD_MATERIAL t1 on t0.fmaterialid = t1.fmaterialid
|
||||
--WHERE t0.OID = 6339745
|
||||
order by t0.FSEQ,t0.BOMLEVEL
|
||||
SELECT * FROM #TMP_MO WHERE 1 = 1
|
||||
--AND FBOMID <> MOBOMID
|
||||
--AND FBOMID = 6339745 AND topbillno='WO2308090009' --<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
DROP TABLE #TMP_MO_PART
|
||||
DROP TABLE #TMP_TOP_BOM_SET
|
||||
DROP TABLE #TMP_TOP_BOM_GROUP
|
||||
DROP TABLE #TMP_MO --ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
END
|
||||
|
||||
--SET STATISTICS TIME ON
|
||||
--EXEC PROC_UPDATE_BOMLEVEL
|
||||
--SET STATISTICS TIME OFF
|
||||
219
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM_查询.sql
Normal file
219
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM_查询.sql
Normal file
@@ -0,0 +1,219 @@
|
||||
CREATE TABLE #TMP_MO --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
(
|
||||
FID INT
|
||||
,FBILLNO VARCHAR(255)
|
||||
,FDATE DATE
|
||||
,FENTRYID INT
|
||||
,FMATERIALID INT
|
||||
,OMATERAILID int
|
||||
,MOBOMID INT
|
||||
,FSRCFORMID VARCHAR(255)
|
||||
,FSRCBILLNO VARCHAR(255)
|
||||
,FSRCINTERID INT
|
||||
,FSRCENTRYID INT
|
||||
,FSEQ INT
|
||||
,FBOMID INT
|
||||
,BOMLEVEL VARCHAR(255)
|
||||
,TOPBILLNO VARCHAR(255)
|
||||
,FFORECASTGROUP varchar(255)
|
||||
);
|
||||
|
||||
CREATE INDEX [#TMP_MO_FID] ON #TMP_MO(FID);
|
||||
|
||||
--INSERT INTO #TMP_MO
|
||||
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
SELECT
|
||||
t0e.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FDATE
|
||||
,t0e.FENTRYID
|
||||
,t0e.FMATERIALID
|
||||
,t0e.FBomId MOBomId
|
||||
,t1.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,t2e.FSEQ
|
||||
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t2e.FMATERIALID OMATERAILID
|
||||
,t0e.FFORECASTGROUP
|
||||
,t0e.FFORECASTGROUPFRIST
|
||||
--,t0_lk.FSTABLENAME
|
||||
--,t0_lk.FSTABLEID
|
||||
--,t0_lk.FSBILLID
|
||||
,t0_lk.FSID
|
||||
,t0e_Q.FSRCSPLITID
|
||||
,'' BOMLevel
|
||||
INTO #TMP_MO_PART
|
||||
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0e.FENTRYID = t0e_Q.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY_LK t0_lk on t0e.FENTRYID = t0_lk.FENTRYID
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0e.FID AND t1e.FINTSUPPLYENTRYID = t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID = 'PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID = t1.FSRCINTERID AND t2e.FENTRYID = t1.FSRCENTRYID--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WHERE 1 = 1
|
||||
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e.FFORECASTGROUP = '' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
|
||||
--AND t0e.FFORECASTGROUPFRIST = 'WO2312270043'
|
||||
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e_Q.FSRCSPLITID = 0
|
||||
|
||||
|
||||
INSERT INTO #TMP_MO
|
||||
SELECT
|
||||
tt.FID
|
||||
,tt.FBILLNO
|
||||
,tt.FDATE
|
||||
,tt.FENTRYID
|
||||
,tt.FMATERIALID
|
||||
,tt.OMATERAILID
|
||||
,tt.MOBomId
|
||||
,tt.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,tt.FSEQ
|
||||
,tt.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.BOMLevel
|
||||
,ISNULL(t0.FBILLNO,'<EFBFBD><EFBFBD><EFBFBD><EFBFBD>') FBILLNO
|
||||
,tt.FFORECASTGROUP
|
||||
--into #TMP_MO
|
||||
FROM
|
||||
#TMP_MO_PART tt
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
FID,MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FBILLNO,FDATE,len(FBILLNO) Billnolen,OMATERAILID,FMATERIALID,FSID
|
||||
,ROW_NUMBER() over(partition BY MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FDATE,len(FBILLNO),OMATERAILID,FMATERIALID order by FBILLNO) ROWID
|
||||
FROM
|
||||
#TMP_MO_PART
|
||||
WHERE FMATERIALID = OMATERAILID
|
||||
) t0 ON 1=1
|
||||
AND tt.FBOMID = t0.FBOMID
|
||||
AND tt.FSEQ = t0.FSEQ
|
||||
AND tt.FSRCINTERID = t0.FSRCINTERID
|
||||
AND tt.FSRCENTRYID = t0.FSRCENTRYID
|
||||
AND tt.FDATE = t0.FDATE
|
||||
--AND t0.ROWID =1
|
||||
AND tt.OMATERAILID = t0.FMATERIALID
|
||||
AND t0.Billnolen = len(tt.FBILLNO)
|
||||
--AND tt.fsid = t0.FSID
|
||||
WHERE 1 = 1
|
||||
--AND tt.FFORECASTGROUP = ''
|
||||
|
||||
CREATE TABLE #TMP_TOP_BOM_SET(
|
||||
FID int
|
||||
,FNUMBER varchar(80)
|
||||
,FMATERIALID int
|
||||
,FSEQ int
|
||||
,BOMLEVEL int
|
||||
,TOPID int
|
||||
,showlevel varchar(80)
|
||||
,oId int
|
||||
)
|
||||
CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID);
|
||||
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.FID order by t0.fid)
|
||||
,1 'BOMLEVEL'
|
||||
,t0.FID AS 'TOPID'
|
||||
,''
|
||||
,t0.FID
|
||||
FROM
|
||||
T_ENG_BOM t0
|
||||
INNER JOIN #TMP_MO t3 on t3.FBOMID = t0.FID AND t3.FMATERIALID = t0.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND t3.FMATERIALID = t3.OMATERAILID
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
|
||||
|
||||
DECLARE @num INT,@level int,@LoopCount int
|
||||
SET @num = 1
|
||||
SET @level =1
|
||||
SET @LoopCount = 0;
|
||||
WHILE (@num <> 0 AND @LoopCount < 30)
|
||||
BEGIN
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t3.FID
|
||||
,t3.FNUMBER
|
||||
,t3.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.TOPID,t0.oid order by t0.fseq)
|
||||
,t0.BOMLEVEL + 1
|
||||
,t0.TOPID
|
||||
,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid,t0.oid,t0.fid order by t1.fseq) as VARCHAR))
|
||||
,t0.FID
|
||||
FROM
|
||||
#TMP_TOP_BOM_SET t0
|
||||
INNER JOIN T_ENG_BOMCHILD t1 on t0.FID = t1.FID
|
||||
INNER JOIN T_BD_MATERIALBASE t2 on t2.FMATERIALID = t1.FMATERIALID
|
||||
INNER JOIN T_ENG_BOM t3 on t1.FMATERIALID = t3.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND (t2.FERPCLSID = 2 OR t2.FERPCLSID = 5 )
|
||||
AND t0.BOMLEVEL = @level
|
||||
|
||||
SET @num = @@ROWCOUNT
|
||||
SET @level += 1
|
||||
SET @LoopCount += 1
|
||||
END
|
||||
|
||||
SELECT
|
||||
*
|
||||
INTO #TMP_TOP_BOM_GROUP
|
||||
FROM #TMP_TOP_BOM_SET
|
||||
WHERE 1 = 1
|
||||
GROUP BY FID,FNUMBER,FMATERIALID,FSEQ,BOMLEVEL,TOPID,showlevel,oId
|
||||
|
||||
SELECT FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
INTO #TMP_MO_GROUP
|
||||
FROM #TMP_MO
|
||||
GROUP BY FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE t0 SET t0.BOMLEVEL = (CASE t0.TOPBILLNO WHEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' THEN '' ELSE ISNULL(t0.TOPBILLNO,'') + ISNULL(t1.showlevel ,'') END)
|
||||
FROM #TMP_MO_GROUP t0 LEFT JOIN #TMP_TOP_BOM_GROUP t1 on t0.FMATERIALID = t1.FMATERIALID AND t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
|
||||
|
||||
----<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
||||
--UPDATE t0e SET t0e.FFORECASTGROUP = t1.BOMLEVEL,t0e.FFORECASTGROUPFRIST = t1.TOPBILLNO
|
||||
--FROM T_PRD_MOENTRY t0e INNER JOIN #TMP_MO_GROUP t1 on t0e.FBOMID = t1.MOBOMID AND t0e.FENTRYID = t1.FENTRYID
|
||||
--WHERE t0e.FFORECASTGROUP = ''
|
||||
|
||||
--SELECT t0.*,t1.fnumber
|
||||
|
||||
--FROM #TMP_TOP_BOM_GROUP t0
|
||||
--INNER JOIN T_BD_MATERIAL t1 on t0.fmaterialid = t1.fmaterialid
|
||||
|
||||
----WHERE t0.TOPID = 8062230
|
||||
--order by t0.FSEQ,t0.BOMLEVEL
|
||||
--SELECT t0.*,t1.FENTRYID FROM #TMP_MO_GROUP t0 RIGHT join T_PRD_MOENTRY t1 on t0.FID = t1.FID AND t0.FENTRYID = t1.FENTRYID WHERE 1 = 1 AND t1.FFORECASTGROUPFRIST = 'WO2312270043'<27><>
|
||||
SELECT t0.*
|
||||
,t0_lk.FSTABLENAME
|
||||
,t0_lk.FSTABLEID
|
||||
,t0_lk.FSBILLID
|
||||
,t0_lk.FSID
|
||||
,t0e_Q.FSRCSPLITBILLNO
|
||||
,t0e_Q.FSRCSPLITID
|
||||
,t0e_Q.FSRCSPLITSEQ
|
||||
,t0e_Q.FSRCSPLITENTRYID
|
||||
--INTO #TMP_MO_PART
|
||||
FROM #TMP_MO_GROUP t0
|
||||
LEft JOIN T_PRD_MOENTRY_LK t0_lk on t0.FENTRYID = t0_lk.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0.FENTRYID = t0e_Q.FENTRYID
|
||||
WHERE 1 = 1
|
||||
--AND FBOMID =8237478 AND MOBOMID =8237478
|
||||
--AND topbillno='WO2311080183'
|
||||
--SELECT * FROM #TMP_MO WHERE 1 = 1
|
||||
--AND FBOMID <> MOBOMID
|
||||
--AND FBOMID = 6339745 --AND topbillno='WO2308090009' --<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DROP TABLE #TMP_MO_GROUP
|
||||
DROP TABLE #TMP_MO_PART
|
||||
DROP TABLE #TMP_TOP_BOM_SET
|
||||
DROP TABLE #TMP_TOP_BOM_GROUP
|
||||
DROP TABLE #TMP_MO --ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
@@ -0,0 +1,231 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_SELECT_UPDATE_BOMLEVEL')
|
||||
DROP PROCEDURE dbo.PROC_SELECT_UPDATE_BOMLEVEL;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_SELECT_UPDATE_BOMLEVEL
|
||||
@billnoStr varchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
CREATE TABLE #TMP_MO --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
(
|
||||
FID INT
|
||||
,FBILLNO VARCHAR(255)
|
||||
,FDATE DATE
|
||||
,FENTRYID INT
|
||||
,FMATERIALID INT
|
||||
,OMATERAILID int
|
||||
,MOBOMID INT
|
||||
,FSRCFORMID VARCHAR(255)
|
||||
,FSRCBILLNO VARCHAR(255)
|
||||
,FSRCINTERID INT
|
||||
,FSRCENTRYID INT
|
||||
,FSEQ INT
|
||||
,FBOMID INT
|
||||
,BOMLEVEL VARCHAR(255)
|
||||
,TOPBILLNO VARCHAR(255)
|
||||
,FFORECASTGROUP varchar(255)
|
||||
);
|
||||
|
||||
CREATE INDEX [#TMP_MO_FID] ON #TMP_MO(FID);
|
||||
|
||||
--INSERT INTO #TMP_MO
|
||||
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
SELECT
|
||||
t0e.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FDATE
|
||||
,t0e.FENTRYID
|
||||
,t0e.FMATERIALID
|
||||
,t0e.FBomId MOBomId
|
||||
,t1.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,t2e.FSEQ
|
||||
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t2e.FMATERIALID OMATERAILID
|
||||
,t0e.FFORECASTGROUP
|
||||
--,t0_lk.FSTABLENAME
|
||||
--,t0_lk.FSTABLEID
|
||||
--,t0_lk.FSBILLID
|
||||
,t0_lk.FSID
|
||||
,t0e_Q.FSRCSPLITID
|
||||
,'' BOMLevel
|
||||
INTO #TMP_MO_PART
|
||||
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0e.FENTRYID = t0e_Q.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY_LK t0_lk on t0e.FENTRYID = t0_lk.FENTRYID
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0e.FID AND t1e.FINTSUPPLYENTRYID = t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID = 'PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID = t1.FSRCINTERID AND t2e.FENTRYID = t1.FSRCENTRYID--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WHERE 1 = 1
|
||||
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e.FFORECASTGROUP='' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
|
||||
--AND t0e.FFORECASTGROUPFRIST = 'WO2312270043'
|
||||
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e_Q.FSRCSPLITID = 0
|
||||
AND t0.FBILLNO in (SELECT b.billno FROM (SELECT CAST('<v>'+REPLACE(@billnoStr,',','</v><v>')+'</v>' AS xml) billno ) a OUTER APPLY (SELECT T.C.value('.','varchar(50)') billno FROM a.billno.nodes('/v') AS T(C)) b ) --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
INSERT INTO #TMP_MO
|
||||
SELECT
|
||||
tt.FID
|
||||
,tt.FBILLNO
|
||||
,tt.FDATE
|
||||
,tt.FENTRYID
|
||||
,tt.FMATERIALID
|
||||
,tt.OMATERAILID
|
||||
,tt.MOBomId
|
||||
,tt.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,tt.FSEQ
|
||||
,tt.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.BOMLevel
|
||||
,t0.FBILLNO
|
||||
,tt.FFORECASTGROUP
|
||||
--into #TMP_MO
|
||||
FROM
|
||||
#TMP_MO_PART tt
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
FID,MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FBILLNO,FDATE,len(FBILLNO) Billnolen,OMATERAILID,FMATERIALID,FSID
|
||||
,ROW_NUMBER() over(partition BY MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FDATE,len(FBILLNO),OMATERAILID,FMATERIALID order by FBILLNO) ROWID
|
||||
FROM
|
||||
#TMP_MO_PART
|
||||
WHERE FMATERIALID = OMATERAILID
|
||||
) t0 ON 1=1
|
||||
AND tt.FBOMID = t0.FBOMID
|
||||
AND tt.FSEQ = t0.FSEQ
|
||||
AND tt.FSRCINTERID = t0.FSRCINTERID
|
||||
AND tt.FSRCENTRYID = t0.FSRCENTRYID
|
||||
AND tt.FDATE = t0.FDATE
|
||||
--AND t0.ROWID =1
|
||||
AND tt.OMATERAILID = t0.FMATERIALID
|
||||
AND t0.Billnolen = len(tt.FBILLNO)
|
||||
--AND tt.fsid = t0.FSID
|
||||
WHERE 1 = 1
|
||||
--AND tt.FFORECASTGROUP = ''
|
||||
|
||||
CREATE TABLE #TMP_TOP_BOM_SET(
|
||||
FID int
|
||||
,FNUMBER varchar(80)
|
||||
,FMATERIALID int
|
||||
,FSEQ int
|
||||
,BOMLEVEL int
|
||||
,TOPID int
|
||||
,showlevel varchar(80)
|
||||
,oId int
|
||||
)
|
||||
CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID);
|
||||
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.FID order by t0.fid)
|
||||
,1 'BOMLEVEL'
|
||||
,t0.FID AS 'TOPID'
|
||||
,''
|
||||
,t0.FID
|
||||
FROM
|
||||
T_ENG_BOM t0
|
||||
INNER JOIN #TMP_MO t3 on t3.FBOMID = t0.FID AND t3.FMATERIALID = t0.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND t3.FMATERIALID = t3.OMATERAILID
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
|
||||
|
||||
DECLARE @num INT,@level int,@LoopCount int
|
||||
SET @num = 1
|
||||
SET @level =1
|
||||
SET @LoopCount = 0;
|
||||
WHILE (@num <> 0 AND @LoopCount < 30)
|
||||
BEGIN
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t3.FID
|
||||
,t3.FNUMBER
|
||||
,t3.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.TOPID,t0.oid order by t0.fseq)
|
||||
,t0.BOMLEVEL + 1
|
||||
,t0.TOPID
|
||||
,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid,t0.oid,t0.fid order by t1.fseq) as VARCHAR))
|
||||
,t0.FID
|
||||
FROM
|
||||
#TMP_TOP_BOM_SET t0
|
||||
INNER JOIN T_ENG_BOMCHILD t1 on t0.FID = t1.FID
|
||||
INNER JOIN T_BD_MATERIALBASE t2 on t2.FMATERIALID = t1.FMATERIALID
|
||||
INNER JOIN T_ENG_BOM t3 on t1.FMATERIALID = t3.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND (t2.FERPCLSID = 2 OR t2.FERPCLSID = 5 )
|
||||
AND t0.BOMLEVEL = @level
|
||||
|
||||
SET @num = @@ROWCOUNT
|
||||
SET @level += 1
|
||||
SET @LoopCount += 1
|
||||
END
|
||||
|
||||
SELECT
|
||||
*
|
||||
INTO #TMP_TOP_BOM_GROUP
|
||||
FROM #TMP_TOP_BOM_SET
|
||||
WHERE 1 = 1
|
||||
GROUP BY FID,FNUMBER,FMATERIALID,FSEQ,BOMLEVEL,TOPID,showlevel,oId
|
||||
|
||||
SELECT FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
INTO #TMP_MO_GROUP
|
||||
FROM #TMP_MO
|
||||
GROUP BY FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE t0 SET t0.BOMLEVEL = ISNULL(t0.TOPBILLNO,'') + ISNULL(t1.showlevel ,'')
|
||||
FROM #TMP_MO_GROUP t0 LEFT JOIN #TMP_TOP_BOM_GROUP t1 on t0.FMATERIALID = t1.FMATERIALID AND t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
|
||||
|
||||
----<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
||||
--UPDATE t0e SET t0e.FFORECASTGROUP = t1.BOMLEVEL,t0e.FFORECASTGROUPFRIST = t1.TOPBILLNO
|
||||
--FROM T_PRD_MOENTRY t0e INNER JOIN #TMP_MO_GROUP t1 on t0e.FBOMID = t1.MOBOMID AND t0e.FENTRYID = t1.FENTRYID
|
||||
|
||||
--SELECT t0.*,t1.fnumber
|
||||
|
||||
--FROM #TMP_TOP_BOM_GROUP t0
|
||||
--INNER JOIN T_BD_MATERIAL t1 on t0.fmaterialid = t1.fmaterialid
|
||||
|
||||
----WHERE t0.TOPID = 8062230
|
||||
--order by t0.FSEQ,t0.BOMLEVEL
|
||||
--SELECT t0.*,t1.FENTRYID FROM #TMP_MO_GROUP t0 RIGHT join T_PRD_MOENTRY t1 on t0.FID = t1.FID AND t0.FENTRYID = t1.FENTRYID WHERE 1 = 1 AND t1.FFORECASTGROUPFRIST = 'WO2312270043'<27><>
|
||||
--SELECT t0.*
|
||||
-- ,t0_lk.FSTABLENAME
|
||||
-- ,t0_lk.FSTABLEID
|
||||
-- ,t0_lk.FSBILLID
|
||||
-- ,t0_lk.FSID
|
||||
-- ,t0e_Q.FSRCSPLITBILLNO
|
||||
-- ,t0e_Q.FSRCSPLITID
|
||||
-- ,t0e_Q.FSRCSPLITSEQ
|
||||
-- ,t0e_Q.FSRCSPLITENTRYID
|
||||
-- --INTO #TMP_MO_PART
|
||||
-- FROM #TMP_MO_GROUP t0
|
||||
-- LEft JOIN T_PRD_MOENTRY_LK t0_lk on t0.FENTRYID = t0_lk.FENTRYID
|
||||
-- INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0.FENTRYID = t0e_Q.FENTRYID
|
||||
-- WHERE 1 = 1
|
||||
--AND FBOMID =8237478 AND MOBOMID =8237478
|
||||
--AND topbillno='WO2311080183'
|
||||
--SELECT * FROM #TMP_MO WHERE 1 = 1
|
||||
--AND FBOMID <> MOBOMID
|
||||
--AND FBOMID = 6339745 --AND topbillno='WO2308090009' --<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DROP TABLE #TMP_MO_GROUP
|
||||
DROP TABLE #TMP_MO_PART
|
||||
DROP TABLE #TMP_TOP_BOM_SET
|
||||
DROP TABLE #TMP_TOP_BOM_GROUP
|
||||
DROP TABLE #TMP_MO --ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
END
|
||||
|
||||
--SET STATISTICS TIME ON
|
||||
--EXEC PROC_UPDATE_BOMLEVEL
|
||||
--SET STATISTICS TIME OFF
|
||||
229
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM更新层号_存储过程20240114.sql
Normal file
229
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/生产订单BOM更新层号_存储过程20240114.sql
Normal file
@@ -0,0 +1,229 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_UPDATE_BOMLEVEL')
|
||||
DROP PROCEDURE dbo.PROC_UPDATE_BOMLEVEL;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_UPDATE_BOMLEVEL
|
||||
AS
|
||||
BEGIN
|
||||
CREATE TABLE #TMP_MO --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
(
|
||||
FID INT
|
||||
,FBILLNO VARCHAR(255)
|
||||
,FDATE DATE
|
||||
,FENTRYID INT
|
||||
,FMATERIALID INT
|
||||
,OMATERAILID int
|
||||
,MOBOMID INT
|
||||
,FSRCFORMID VARCHAR(255)
|
||||
,FSRCBILLNO VARCHAR(255)
|
||||
,FSRCINTERID INT
|
||||
,FSRCENTRYID INT
|
||||
,FSEQ INT
|
||||
,FBOMID INT
|
||||
,BOMLEVEL VARCHAR(255)
|
||||
,TOPBILLNO VARCHAR(255)
|
||||
,FFORECASTGROUP varchar(255)
|
||||
);
|
||||
|
||||
CREATE INDEX [#TMP_MO_FID] ON #TMP_MO(FID);
|
||||
|
||||
--INSERT INTO #TMP_MO
|
||||
/*<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ͷ<EFBFBD>ţ<EFBFBD>T_PLN_RESERVELINKENTRY<EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
SELECT
|
||||
t0e.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FDATE
|
||||
,t0e.FENTRYID
|
||||
,t0e.FMATERIALID
|
||||
,t0e.FBomId MOBomId
|
||||
,t1.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,t1.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t1.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,t2e.FSEQ
|
||||
,t2e.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,t2e.FMATERIALID OMATERAILID
|
||||
,t0e.FFORECASTGROUP
|
||||
--,t0_lk.FSTABLENAME
|
||||
--,t0_lk.FSTABLEID
|
||||
--,t0_lk.FSBILLID
|
||||
,t0_lk.FSID
|
||||
,t0e_Q.FSRCSPLITID
|
||||
,'' BOMLevel
|
||||
INTO #TMP_MO_PART
|
||||
FROM T_PRD_MO t0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PRD_MOENTRY t0e ON t0e.FID=t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0e.FENTRYID = t0e_Q.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY_LK t0_lk on t0e.FENTRYID = t0_lk.FENTRYID
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0e.FID AND t1e.FINTSUPPLYENTRYID = t0e.FENTRYID--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID=t1e.FID AND t1.FSRCFORMID = 'PLN_FORECAST'--Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FID = t1.FSRCINTERID AND t2e.FENTRYID = t1.FSRCENTRYID--Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WHERE 1 = 1
|
||||
--t0.FBILLNO='WO2401100002' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e.FFORECASTGROUP='' /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>*/
|
||||
--AND t0e.FFORECASTGROUPFRIST = 'WO2312270043'
|
||||
AND t0e.FSRCBILLTYPE='PLN_PLANORDER' /*ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>MRP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶĵ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
AND t0e_Q.FSRCSPLITID = 0
|
||||
|
||||
|
||||
INSERT INTO #TMP_MO
|
||||
SELECT
|
||||
tt.FID
|
||||
,tt.FBILLNO
|
||||
,tt.FDATE
|
||||
,tt.FENTRYID
|
||||
,tt.FMATERIALID
|
||||
,tt.OMATERAILID
|
||||
,tt.MOBomId
|
||||
,tt.FSRCFORMID --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCBILLNO --'<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,tt.FSRCINTERID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.FSRCENTRYID /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>*/ ---<EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ͬһԤ<EFBFBD>ⵥͬһ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
|
||||
,tt.FSEQ
|
||||
,tt.FBomId /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>ⶩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FBomIdȡƥ<EFBFBD><EFBFBD>BOM<EFBFBD>༶չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><EFBFBD><EFBFBD>*/
|
||||
,tt.BOMLevel
|
||||
,t0.FBILLNO
|
||||
,tt.FFORECASTGROUP
|
||||
--into #TMP_MO
|
||||
FROM
|
||||
#TMP_MO_PART tt
|
||||
INNER JOIN (
|
||||
SELECT
|
||||
FID,MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FBILLNO,FDATE,len(FBILLNO) Billnolen,OMATERAILID,FMATERIALID,FSID
|
||||
,ROW_NUMBER() over(partition BY MOBomId,FBOMID,FSEQ,FSRCINTERID,FSRCENTRYID,FDATE,len(FBILLNO),OMATERAILID,FMATERIALID order by FBILLNO) ROWID
|
||||
FROM
|
||||
#TMP_MO_PART
|
||||
WHERE FMATERIALID = OMATERAILID
|
||||
) t0 ON 1=1
|
||||
AND tt.FBOMID = t0.FBOMID
|
||||
AND tt.FSEQ = t0.FSEQ
|
||||
AND tt.FSRCINTERID = t0.FSRCINTERID
|
||||
AND tt.FSRCENTRYID = t0.FSRCENTRYID
|
||||
AND tt.FDATE = t0.FDATE
|
||||
--AND t0.ROWID =1
|
||||
AND tt.OMATERAILID = t0.FMATERIALID
|
||||
AND t0.Billnolen = len(tt.FBILLNO)
|
||||
--AND tt.fsid = t0.FSID
|
||||
WHERE 1 = 1
|
||||
--AND tt.FFORECASTGROUP = ''
|
||||
|
||||
CREATE TABLE #TMP_TOP_BOM_SET(
|
||||
FID int
|
||||
,FNUMBER varchar(80)
|
||||
,FMATERIALID int
|
||||
,FSEQ int
|
||||
,BOMLEVEL int
|
||||
,TOPID int
|
||||
,showlevel varchar(80)
|
||||
,oId int
|
||||
)
|
||||
CREATE INDEX [#TMP_TOP_BOM_SET_FID] ON #TMP_TOP_BOM_SET(FID);
|
||||
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.FID order by t0.fid)
|
||||
,1 'BOMLEVEL'
|
||||
,t0.FID AS 'TOPID'
|
||||
,''
|
||||
,t0.FID
|
||||
FROM
|
||||
T_ENG_BOM t0
|
||||
INNER JOIN #TMP_MO t3 on t3.FBOMID = t0.FID AND t3.FMATERIALID = t0.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND t3.FMATERIALID = t3.OMATERAILID
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FNUMBER
|
||||
,t0.FMATERIALID
|
||||
|
||||
|
||||
DECLARE @num INT,@level int,@LoopCount int
|
||||
SET @num = 1
|
||||
SET @level =1
|
||||
SET @LoopCount = 0;
|
||||
WHILE (@num <> 0 AND @LoopCount < 30)
|
||||
BEGIN
|
||||
INSERT INTO #TMP_TOP_BOM_SET
|
||||
SELECT
|
||||
t3.FID
|
||||
,t3.FNUMBER
|
||||
,t3.FMATERIALID
|
||||
,ROW_NUMBER() over(partition BY t0.TOPID,t0.oid order by t0.fseq)
|
||||
,t0.BOMLEVEL + 1
|
||||
,t0.TOPID
|
||||
,CONCAT(t0.showlevel,'-',CAST(dense_rank() over(partition BY t0.topid,t0.oid,t0.fid order by t1.fseq) as VARCHAR))
|
||||
,t0.FID
|
||||
FROM
|
||||
#TMP_TOP_BOM_SET t0
|
||||
INNER JOIN T_ENG_BOMCHILD t1 on t0.FID = t1.FID
|
||||
INNER JOIN T_BD_MATERIALBASE t2 on t2.FMATERIALID = t1.FMATERIALID
|
||||
INNER JOIN T_ENG_BOM t3 on t1.FMATERIALID = t3.FMATERIALID
|
||||
WHERE 1 = 1
|
||||
AND (t2.FERPCLSID = 2 OR t2.FERPCLSID = 5 )
|
||||
AND t0.BOMLEVEL = @level
|
||||
|
||||
SET @num = @@ROWCOUNT
|
||||
SET @level += 1
|
||||
SET @LoopCount += 1
|
||||
END
|
||||
|
||||
SELECT
|
||||
*
|
||||
INTO #TMP_TOP_BOM_GROUP
|
||||
FROM #TMP_TOP_BOM_SET
|
||||
WHERE 1 = 1
|
||||
GROUP BY FID,FNUMBER,FMATERIALID,FSEQ,BOMLEVEL,TOPID,showlevel,oId
|
||||
|
||||
SELECT FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
INTO #TMP_MO_GROUP
|
||||
FROM #TMP_MO
|
||||
GROUP BY FID,FBILLNO,FENTRYID,FDATE,FMATERIALID,OMATERAILID,MOBOMID,FSRCENTRYID,FSRCINTERID,FSEQ,FBOMID,TOPBILLNO,BOMLEVEL,FFORECASTGROUP
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE t0 SET t0.BOMLEVEL = ISNULL(t0.TOPBILLNO,'') + ISNULL(t1.showlevel ,'')
|
||||
FROM #TMP_MO_GROUP t0 LEFT JOIN #TMP_TOP_BOM_GROUP t1 on t0.FMATERIALID = t1.FMATERIALID AND t0.MOBOMID = t1.FID AND t0.FBOMID = t1.TOPID
|
||||
|
||||
----<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
|
||||
--UPDATE t0e SET t0e.FFORECASTGROUP = t1.BOMLEVEL,t0e.FFORECASTGROUPFRIST = t1.TOPBILLNO
|
||||
--FROM T_PRD_MOENTRY t0e INNER JOIN #TMP_MO_GROUP t1 on t0e.FBOMID = t1.MOBOMID AND t0e.FENTRYID = t1.FENTRYID
|
||||
|
||||
--SELECT t0.*,t1.fnumber
|
||||
|
||||
--FROM #TMP_TOP_BOM_GROUP t0
|
||||
--INNER JOIN T_BD_MATERIAL t1 on t0.fmaterialid = t1.fmaterialid
|
||||
|
||||
----WHERE t0.TOPID = 8062230
|
||||
--order by t0.FSEQ,t0.BOMLEVEL
|
||||
--SELECT t0.*,t1.FENTRYID FROM #TMP_MO_GROUP t0 RIGHT join T_PRD_MOENTRY t1 on t0.FID = t1.FID AND t0.FENTRYID = t1.FENTRYID WHERE 1 = 1 AND t1.FFORECASTGROUPFRIST = 'WO2312270043'<27><>
|
||||
--SELECT t0.*
|
||||
-- ,t0_lk.FSTABLENAME
|
||||
-- ,t0_lk.FSTABLEID
|
||||
-- ,t0_lk.FSBILLID
|
||||
-- ,t0_lk.FSID
|
||||
-- ,t0e_Q.FSRCSPLITBILLNO
|
||||
-- ,t0e_Q.FSRCSPLITID
|
||||
-- ,t0e_Q.FSRCSPLITSEQ
|
||||
-- ,t0e_Q.FSRCSPLITENTRYID
|
||||
-- --INTO #TMP_MO_PART
|
||||
-- FROM #TMP_MO_GROUP t0
|
||||
-- LEft JOIN T_PRD_MOENTRY_LK t0_lk on t0.FENTRYID = t0_lk.FENTRYID
|
||||
-- INNER JOIN T_PRD_MOENTRY_Q t0e_Q on t0.FENTRYID = t0e_Q.FENTRYID
|
||||
-- WHERE 1 = 1
|
||||
--AND FBOMID =8237478 AND MOBOMID =8237478
|
||||
--AND topbillno='WO2311080183'
|
||||
--SELECT * FROM #TMP_MO WHERE 1 = 1
|
||||
--AND FBOMID <> MOBOMID
|
||||
--AND FBOMID = 6339745 --AND topbillno='WO2308090009' --<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DROP TABLE #TMP_MO_GROUP
|
||||
DROP TABLE #TMP_MO_PART
|
||||
DROP TABLE #TMP_TOP_BOM_SET
|
||||
DROP TABLE #TMP_TOP_BOM_GROUP
|
||||
DROP TABLE #TMP_MO --ɾ<><C9BE><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>#TMP
|
||||
END
|
||||
|
||||
--SET STATISTICS TIME ON
|
||||
--EXEC PROC_UPDATE_BOMLEVEL
|
||||
--SET STATISTICS TIME OFF
|
||||
20
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/统计需要更新的数据.sql
Normal file
20
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/统计需要更新的数据.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_COUNT_UPDATE_PLAN_LIST')
|
||||
DROP PROCEDURE dbo.PROC_COUNT_UPDATE_PLAN_LIST;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_COUNT_UPDATE_PLAN_LIST
|
||||
AS
|
||||
BEGIN
|
||||
SELECT COUNT(1) as totalCount,5000 as pageSize
|
||||
FROM (
|
||||
SELECT A.FID
|
||||
FROM T_PLN_PLANORDER A
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY B ON B.FSUPPLYBILLNO = A.FBILLNO
|
||||
INNER JOIN T_PLN_RESERVELINK C ON C.FID=B.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY D ON D.FENTRYID=C.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST e on e .fid=d.FID
|
||||
WHERE 1=1
|
||||
AND A.F_FORECASTNUMBER = ''
|
||||
GROUP BY A.FID
|
||||
) t
|
||||
END
|
||||
232
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/英博尔测试20240220.sql
Normal file
232
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/英博尔测试20240220.sql
Normal file
@@ -0,0 +1,232 @@
|
||||
|
||||
declare @FBILLNO NVARCHAR(1000)
|
||||
set @FBILLNO = 'WO2402200045,WO2402200046,WO2402200047'
|
||||
select fname into #temp2 from dbo.fn_hr_StrSplit(@FBILLNO,',')
|
||||
|
||||
UPDATE B SET FFORECASTGROUP = REPLACE( D.FFORECASTGROUP,H.FBILLNO,L.FBILLNO)
|
||||
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
|
||||
INNER JOIN T_PRD_MO E ON E.FID=D.FID
|
||||
INNER JOIN T_PRD_MO H ON H.FBILLNO=D.FFORECASTGROUPFRIST --<EFBFBD>ײ<EFBFBD>
|
||||
INNER JOIN T_PRD_MOENTRY I ON I.FID=H.FID --<EFBFBD>ײ㵥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
INNER JOIN T_PRD_MOENTRY_Q J ON J.FSRCSPLITENTRYID=I.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY K ON K.FENTRYID=J.FENTRYID
|
||||
INNER JOIN T_PRD_MO L ON L.FID=K.FID AND SUBSTRING(L.FBILLNO, CHARINDEX('-',L.FBILLNO)+1,LEN(L.FBILLNO)) = SUBSTRING(A.FBILLNO, CHARINDEX('-',A.FBILLNO)+1,LEN(A.FBILLNO))
|
||||
inner join #temp2 m on m.Fname=a.FBILLNO
|
||||
WHERE 1=1
|
||||
AND B.FFORECASTGROUP = ''
|
||||
|
||||
|
||||
|
||||
--2024-01-15 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ,ʹ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
exec PROC_SELECT_UPDATE_BOMLEVEL @FBILLNO
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
UPDATE B SET FFORECASTGROUP = ISNULL( cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) ,'')
|
||||
--SELECT
|
||||
--F.FNUMBER,
|
||||
--a.FBILLNO,
|
||||
--B.FENTRYID ,
|
||||
--D.fbomid,b.fmaterialid,
|
||||
--cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) as 'Bom<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||||
--CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_LK C ON C .FENTRYID=B.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FSBILLID AND D.FENTRYID=C.FSID
|
||||
INNER JOIN T_PRD_MO E ON E.FID=D.FID
|
||||
INNER JOIN T_BD_MATERIAL F ON F.FMATERIALID=B.FMATERIALID
|
||||
inner join #temp2 g on g.Fname=a.FBILLNO
|
||||
WHERE B.FFORECASTGROUP = ''
|
||||
--AND A.FBILLNO =@FBILLNO
|
||||
|
||||
|
||||
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start--
|
||||
----<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>,Ϊ<><CEAA><EFBFBD>ĵ<EFBFBD><C4B5>ݱ<EFBFBD><DDB1><EFBFBD>)
|
||||
--UPDATE B SET FFORECASTGROUP = A.FBILLNO
|
||||
----SELECT *
|
||||
--FROM T_PRD_MO A
|
||||
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
--LEFT JOIN T_PRD_MOENTRY_LK D ON D.FENTRYID=B.FENTRYID AND D.FSTABLENAME = 'T_PRD_MOENTRY'
|
||||
--inner join #temp2 f on f.Fname=a.FBILLNO
|
||||
--WHERE
|
||||
--1=1
|
||||
--AND D.FSID IS NULL
|
||||
--AND B.FFORECASTGROUP = ''
|
||||
----AND A.FBILLNO =@FBILLNO
|
||||
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end--
|
||||
|
||||
--2024-01-23 18<31><38>14 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>start--
|
||||
UPDATE B SET FFORECASTGROUP = A.FBILLNO
|
||||
--SELECT A.FBILLNO
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_A t0e_a on B.FENTRYID = t0e_a.FENTRYID
|
||||
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
|
||||
WHERE
|
||||
1=1
|
||||
AND B.FFORECASTGROUP = ''
|
||||
AND t0e_a.FCREATETYPE != 3
|
||||
--AND B.FFORECASTGROUPFRIST != '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM T_PRD_MOENTRY_LK t1_lk
|
||||
WHERE 1=1
|
||||
AND t1_lk.FSTABLENAME = 'T_PRD_MOENTRY'
|
||||
AND t1_lk.FENTRYID = B.FENTRYID)
|
||||
--2024-01-23 18<EFBFBD><EFBFBD>14 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end--
|
||||
|
||||
|
||||
|
||||
|
||||
--<2D><>ϵͳ<CFB5><CDB3><EFBFBD>ı<EFBFBD>ע<EFBFBD>ֶθ<D6B6><CEB8>µ<EFBFBD><C2B5><EFBFBD>ע2<D7A2>ֶ<EFBFBD>
|
||||
update B set FNOTE2=c.FMEMO FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_L C ON C.FENTRYID=B.FENTRYID
|
||||
INNER JOIN #temp2 f on f.Fname=a.FBILLNO
|
||||
--where FNOTE2 = ''
|
||||
--AND A.FBILLNO =@FBILLNO
|
||||
|
||||
--<EFBFBD><EFBFBD>ȡԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
|
||||
UPDATE B SET FNOTE2 = D.FNOTE2
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_Q C ON C.FENTRYID=B.FENTRYID
|
||||
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FSRCSPLITENTRYID
|
||||
inner join #temp2 f on f.Fname=a.FBILLNO
|
||||
--where A.FBILLNO = 'WO2301050101'
|
||||
where B.FNOTE2= ''
|
||||
--AND A.FBILLNO =@FBILLNO
|
||||
|
||||
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ע
|
||||
--UPDATE D SET D.FNOTE2 = B.FNOTE2
|
||||
--SELECT a.FBILLNO,b.FNOTE2,c.FBILLNO ,d.FNOTE2
|
||||
UPDATE B SET FNOTE2 = D.FNOTE2
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MO C ON C.FBILLNO= B.FFORECASTGROUPFRIST
|
||||
INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FID
|
||||
inner join #temp2 f on f.Fname=a.FBILLNO
|
||||
--where A.FBILLNO = 'WO2301050101'
|
||||
where B.FNOTE2= ''
|
||||
AND A.FBILLNO <> B.FFORECASTGROUPFRIST
|
||||
-- AND A.FBILLNO =@FBILLNO
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE D SET FFORECASTGROUP= c.FFORECASTGROUP
|
||||
FROM T_PRD_PPBOM A
|
||||
INNER JOIN T_PRD_PPBOMENTRY D ON A.FID=D.FID
|
||||
INNER JOIN T_PRD_MO B ON B.FBILLNO=A.FMOBillNO
|
||||
INNER JOIN T_PRD_MOENTRY C ON C.FID=B.FID
|
||||
inner join #temp2 f on f.Fname=a.FMOBILLNO
|
||||
where d.FFORECASTGROUP = ''
|
||||
--AND A.FMOBILLNO =@FBILLNO
|
||||
|
||||
|
||||
|
||||
UPDATE A SET FINVSTOCKQTY=B.FBASEQTY
|
||||
FROM T_PRD_MOENTRY A
|
||||
INNER JOIN
|
||||
(
|
||||
SELECT B.FMATERIALID,SUM(FBASEQTY) AS 'FBASEQTY' FROM T_STK_INVENTORY A
|
||||
INNER JOIN T_BD_MATERIAL B ON A.FMATERIALID=B.FMASTERID
|
||||
WHERE A.FISEFFECTIVED=1
|
||||
GROUP BY B.FMATERIALID
|
||||
) B ON A.FMATERIALID=B.FMATERIALID
|
||||
inner join t_prd_mo c on c.fid=a.fid
|
||||
inner join #temp2 f on f.Fname=c.FBILLNO WHERE FINVSTOCKQTY = 0
|
||||
|
||||
--AND c.FBILLNO =@FBILLNO
|
||||
|
||||
|
||||
|
||||
--UPDATE a SET a.FBILLNO = ISNULL( cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) ,'')
|
||||
----SELECT
|
||||
----F.FNUMBER,
|
||||
----a.FBILLNO,
|
||||
----B.FENTRYID ,
|
||||
----D.fbomid,b.fmaterialid,
|
||||
----cast( e.FBILLNO as nvarchar(100))+'-'+ cast( dbo.GetBomSeq(D.fbomid,b.fmaterialid) as nvarchar(100)) as 'Bom<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
||||
----CONVERT( nvarchar(1000),'') as '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>',a.FBILLNO as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',e.FBILLNO as 'Դͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
--FROM T_PRD_MO A
|
||||
--INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
--INNER JOIN T_PRD_MOENTRY_LK C ON C .FENTRYID=B.FENTRYID
|
||||
--INNER JOIN T_PRD_MOENTRY D ON D.FID=C.FSBILLID AND D.FENTRYID=C.FSID
|
||||
--INNER JOIN T_PRD_MO E ON E.FID=D.FID
|
||||
--INNER JOIN T_BD_MATERIAL F ON F.FMATERIALID=B.FMATERIALID
|
||||
--WHERE B.FFORECASTGROUP = ''
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ㶩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
update a set FFORECASTGROUPFRIST =
|
||||
CASE WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) = 0 THEN FFORECASTGROUP
|
||||
|
||||
WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) > 0 AND B.FSRCSPLITENTRYID=0 THEN SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',1))
|
||||
WHEN CHARINDEX( '-',REPLACE( FFORECASTGROUP,'_','-') ,0) > 0 AND B.FSRCSPLITENTRYID>0 AND SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',2)) IS NULL THEN FFORECASTGROUP
|
||||
ELSE SUBSTRING(FFORECASTGROUP,0,dbo.[func_find](FFORECASTGROUP,'-',2)) END
|
||||
|
||||
FROM T_PRD_MOENTRY A
|
||||
INNER JOIN T_PRD_MOENTRY_Q B ON A.FENTRYID=B.FENTRYID
|
||||
inner join T_PRD_MO c on c.fid =a.fid
|
||||
inner join #temp2 f on f.Fname=c.FBILLNO
|
||||
WHERE
|
||||
1=1
|
||||
AND FFORECASTGROUPFRIST= ''
|
||||
--AND c.FBILLNO =@FBILLNO
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵥<EFBFBD><EFBFBD><EFBFBD>ײ㶩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
update T_PRD_PPBOMENTRY set FFORECASTGROUPFRIST =
|
||||
CASE
|
||||
WHEN CHARINDEX( '-',REPLACE( A.FFORECASTGROUP,'_','-') ,0) = 0
|
||||
THEN A.FFORECASTGROUP
|
||||
ELSE SUBSTRING(A.FFORECASTGROUP,0, CHARINDEX( '-',REPLACE( A.FFORECASTGROUP,'_','-') ,0))
|
||||
END
|
||||
FROM T_PRD_PPBOMENTRY a
|
||||
inner join T_PRD_PPBOM b on a.fid=b.fid
|
||||
inner join #temp2 f on f.Fname=b.FMOBILLNO
|
||||
WHERE FFORECASTGROUPFRIST= ''
|
||||
--and b.FMOBILLNO = @FBILLNO
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UPDATE E SET E.F_PKGR_CUSTOMER= A.F_PKGR_CUSTOMER
|
||||
--SELECT *
|
||||
--D.FNOTE2,
|
||||
--B.FNOTE2,*
|
||||
FROM T_PRD_MO A
|
||||
INNER JOIN T_PRD_MOENTRY B ON A.FID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY_LK C ON C.FSID=B.FENTRYID AND C.FSBILLID=B.FID
|
||||
INNER JOIN T_PRD_MOENTRY D ON D.FENTRYID=C.FENTRYID
|
||||
INNER JOIN T_PRD_MO E ON E.FID=D.FID
|
||||
inner join #temp2 f on f.Fname=a.FBILLNO
|
||||
--where A.FBILLNO = 'TO2305300002'
|
||||
AND ISNULL(E.F_PKGR_CUSTOMER,0)= 0
|
||||
and E.F_PKGR_CUSTOMER<>A.F_PKGR_CUSTOMER
|
||||
|
||||
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嵥<EFBFBD>ĵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
--SELECT FNUMERATOR,FDENOMINATOR,
|
||||
--ROUND(FNUMERATOR/FDENOMINATOR,3), F_PKGR_CONSUMPTION,
|
||||
--*
|
||||
update T_PRD_PPBOMENTRY set FBomStdQty = ROUND(FNUMERATOR/FDENOMINATOR,3)
|
||||
|
||||
FROM T_PRD_PPBOMENTRY a
|
||||
inner join T_PRD_PPBOM b on a.fid=b.fid
|
||||
inner join #temp2 c on c.Fname=b.FMOBILLNO
|
||||
|
||||
WHERE FBomStdQty = 0
|
||||
--and b.FMOBILLNO = @FBILLNO
|
||||
|
||||
|
||||
drop table #temp2
|
||||
179
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/计划订单更新预测单信息新sql.sql
Normal file
179
07.珠海英搏尔/Enpower.PRD_MO/SQLserver/计划订单更新预测单信息新sql.sql
Normal file
@@ -0,0 +1,179 @@
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t2.FID 'FORECAST_ID'
|
||||
,t2e.FENTRYID 'FORECASTENTRY_ID'
|
||||
,t2.FBILLNO 'F_FORECASTNUMBER'
|
||||
,t2e.FSEQ 'F_LINENUMBER'
|
||||
,t2e.FCUSTID 'F_CUSTOMERNAME'
|
||||
,t2e.FMATERIALID 'F_MATERIALCODE' --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t2e.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t2e.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,t0.F_REMARK
|
||||
INTO #TEMP_PLANORDER_ID_LIST
|
||||
FROM T_PLN_PLANORDER t0
|
||||
INNER JOIN T_PLN_RESERVELINKENTRY t1e ON t1e.FINTSUPPLYID = t0.FID
|
||||
INNER JOIN T_PLN_RESERVELINK t1 ON t1.FID = t1e.FID
|
||||
INNER JOIN T_PLN_FORECASTENTRY t2e ON t2e.FENTRYID = t1.FSRCENTRYID
|
||||
INNER JOIN T_PLN_FORECAST t2 on t2.fid = t2e.FID
|
||||
WHERE 1 = 1
|
||||
--AND t0.F_FORECASTNUMBER = ''
|
||||
AND CONVERT(nvarchar(100),t0.FCREATEDATE,23) = '2024-01-18'
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_ID_LIST_INDEX_FID ON #TEMP_PLANORDER_ID_LIST(FID);
|
||||
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.FORECASTENTRY_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_LINENUMBER
|
||||
,t0.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,ISNULL(t1_l.FDESCRIPTION,'') AS F_DESCRIPTION
|
||||
--,t1_l.FDESCRIPTION F_DESCRIPTION
|
||||
,ISNULL(t1e_l.FDESCRIPTION,'') AS F_REMARK --<EFBFBD><EFBFBD><EFBFBD>屸ע
|
||||
--,t1e_l.FDESCRIPTION F_REMARK
|
||||
,t2.FNUMBER 'MATERIAL_NUMBER'
|
||||
,t2_l.FNAME 'MATERIAL_NAME'
|
||||
,t3.TOTAL
|
||||
INTO #TEMP_PLANORDER_RESERVELINK
|
||||
|
||||
FROM #TEMP_PLANORDER_ID_LIST t0
|
||||
INNER JOIN (SELECT FID,COUNT(1) TOTAL FROM #TEMP_PLANORDER_ID_LIST GROUP BY FID ) t3 on t3.FID = t0.FID
|
||||
LEFT JOIN T_PLN_FORECAST_L t1_l on t0.FORECAST_ID = t1_l.FID AND t1_l.FLOCALEID = 2052
|
||||
LEFT JOIN T_PLN_FORECASTENTRY_L t1e_l on t1e_l.FENTRYID = t0.FORECASTENTRY_ID AND t1e_l.FLOCALEID = 2052
|
||||
LEFT JOIN T_BD_MATERIAL t2 on t0.F_MATERIALCODE = t2.FMATERIALID
|
||||
LEFT JOIN T_BD_MATERIAL_L t2_l on t0.F_MATERIALCODE = t2_l.FMATERIALID
|
||||
WHERE 1=1
|
||||
--AND t0.F_FORECASTNUMBER = ''
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_RESERVELINK_INDEX ON #TEMP_PLANORDER_RESERVELINK(FID);
|
||||
|
||||
----<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Դ---
|
||||
--UPDATE t0
|
||||
--SET t0.F_FORECASTNUMBER = tt.F_FORECASTNUMBER
|
||||
-- ,t0.F_LINENUMBER = tt.F_LINENUMBER
|
||||
-- ,t0.F_CUSTOMERNAME = tt.F_CUSTOMERNAME
|
||||
-- ,t0.F_MATERIALCODE = tt.F_MATERIALCODE
|
||||
-- ,t0.F_REMARK = tt.F_REMARK
|
||||
-- ,t0.F_MATERIALCODESHOW = tt.MATERIAL_NUMBER
|
||||
-- ,t0.F_MATERIALNAMESHOW = tt.MATERIAL_NAME
|
||||
--FROM T_PLN_PLANORDER t0
|
||||
-- INNER JOIN #TEMP_PLANORDER_RESERVELINK tt on t0.FID = tt.FID AND tt.TOTAL = 1
|
||||
|
||||
----<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Դ---
|
||||
--UPDATE t0_l
|
||||
--SET t0_l.F_DESCRIPTION = tt.F_DESCRIPTION
|
||||
--FROM T_PLN_PLANORDER_L t0_l
|
||||
-- INNER JOIN #TEMP_PLANORDER_RESERVELINK tt on t0_l.FID = tt.FID AND tt.TOTAL = 1
|
||||
|
||||
SELECT
|
||||
t0.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.FORECASTENTRY_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,DENSE_RANK() over(partition BY t0.FID order by t0.FORECAST_ID) 'FORECASTNUMBER_SEQ'
|
||||
,t0.F_LINENUMBER
|
||||
,ROW_NUMBER() over(partition BY t0.FID,t0.FORECAST_ID order by t0.F_LINENUMBER) 'LINENUMBER_SEQ'
|
||||
,t0.F_CUSTOMERNAME
|
||||
,t0.F_MATERIALCODE --Ԥ<EFBFBD>ⵥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
||||
,t0.F_SOURCE_ORDER_LINE_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
,t0.F_SOURCE_ORDER_NUMBER --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#
|
||||
,t0.F_REMARK
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.MATERIAL_NUMBER
|
||||
,t0.MATERIAL_NAME
|
||||
,t0.TOTAL
|
||||
,DENSE_RANK() over(partition BY t0.FID order by t0.F_MATERIALCODE) 'DENSE_RANK_NUM'
|
||||
INTO #TEMP_PLANORDER_RESERVELINK2
|
||||
FROM
|
||||
#TEMP_PLANORDER_RESERVELINK t0
|
||||
WHERE 1 = 1
|
||||
AND TOTAL > 1
|
||||
ORDER BY FID
|
||||
|
||||
CREATE INDEX #TEMP_PLANORDER_RESERVELINK2_INDEX ON #TEMP_PLANORDER_RESERVELINK2(FID);
|
||||
|
||||
UPDATE t0 SET t0.F_MATERIALCODE = 0,t0.F_CUSTOMERNAME = 0
|
||||
FROM #TEMP_PLANORDER_RESERVELINK2 t0,(SELECT FID FROM #TEMP_PLANORDER_RESERVELINK2 WHERE DENSE_RANK_NUM = 2) t1 WHERE t0.FID = t1.FID
|
||||
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
,ISNULL(stuff((select ','+ CONVERT(nvarchar(100), tt.F_LINENUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_LINENUMBER'
|
||||
,ISNULL(stuff((select distinct ';'+ ISNULL(tt.F_REMARK,'') from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_REMARK'
|
||||
,ISNULL(stuff((select distinct ','+ tt.MATERIAL_NUMBER from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'MATERIAL_NUMBER'
|
||||
,ISNULL(stuff((select distinct ','+ tt.MATERIAL_NAME from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'MATERIAL_NAME'
|
||||
,ISNULL(stuff((select distinct ','+ CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_NUMBER'
|
||||
,ISNULL(stuff((select distinct ','+ CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_LINE_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID and tt.FORECAST_ID = t0.FORECAST_ID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_LINE_NUMBER'
|
||||
INTO #TEMP
|
||||
FROM #TEMP_PLANORDER_RESERVELINK2 t0
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.FORECAST_ID
|
||||
,t0.F_FORECASTNUMBER
|
||||
,t0.F_DESCRIPTION
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
CREATE INDEX #TEMP_INDEX ON #TEMP(FID);
|
||||
|
||||
SELECT
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
,ISNULL(stuff((select ';'+ CONVERT(nvarchar(100), tt.F_LINENUMBER) from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_LINENUMBER'
|
||||
,ISNULL(stuff((select ';'+ CONVERT(nvarchar(100), tt.F_FORECASTNUMBER) from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_FORECASTNUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + tt.MATERIAL_NUMBER from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'MATERIAL_NUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + tt.MATERIAL_NAME from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'MATERIAL_NAME'
|
||||
,ISNULL(stuff((select distinct ';' + tt.F_REMARK from #TEMP tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_REMARK'
|
||||
,ISNULL(stuff((select distinct ';' + ISNULL(tt.F_DESCRIPTION,'') from #TEMP tt where tt.FID = t0.FID for xml path('')),1,1,''),'') 'F_DESCRIPTION'
|
||||
,ISNULL(stuff((select distinct ';' + CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_NUMBER'
|
||||
,ISNULL(stuff((select distinct ';' + CONVERT(nvarchar(100), tt.F_SOURCE_ORDER_LINE_NUMBER) from #TEMP_PLANORDER_RESERVELINK2 tt where tt.FID=t0.FID for xml path('')),1,1,''),'') 'F_SOURCE_ORDER_LINE_NUMBER'
|
||||
INTO #TEMP2
|
||||
FROM #TEMP t0
|
||||
--WHERE t0.fbillno ='MRP01679279'
|
||||
GROUP BY
|
||||
t0.FID
|
||||
,t0.FBILLNO
|
||||
,t0.F_MATERIALCODE
|
||||
,t0.F_CUSTOMERNAME
|
||||
CREATE INDEX #TEMP2_INDEX ON #TEMP2(FID);
|
||||
|
||||
--UPDATE #TEMP2 SET F_REMARK = '' WHERE F_REMARK = ';'
|
||||
|
||||
----<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ--
|
||||
--UPDATE t0
|
||||
--SET t0.F_FORECASTNUMBER = tt.F_FORECASTNUMBER
|
||||
-- ,t0.F_LINENUMBER = tt.F_LINENUMBER
|
||||
-- ,t0.F_CUSTOMERNAME = tt.F_CUSTOMERNAME
|
||||
-- ,t0.F_MATERIALCODE = tt.F_MATERIALCODE
|
||||
-- ,t0.F_REMARK = tt.F_REMARK
|
||||
-- ,t0.F_MATERIALCODESHOW = tt.MATERIAL_NUMBER
|
||||
-- ,t0.F_MATERIALNAMESHOW = tt.MATERIAL_NAME
|
||||
--FROM T_PLN_PLANORDER t0
|
||||
-- INNER JOIN #TEMP2 tt on t0.FID = tt.FID --AND tt.TOTAL = 1
|
||||
|
||||
----<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ--
|
||||
--UPDATE t0_l
|
||||
--SET t0_l.F_DESCRIPTION = tt.F_DESCRIPTION
|
||||
--FROM T_PLN_PLANORDER_L t0_l
|
||||
-- INNER JOIN #TEMP2 tt on t0_l.FID = tt.FID --AND tt.TOTAL = 1
|
||||
|
||||
SELECT * FROM #TEMP2
|
||||
DROP TABLE #TEMP
|
||||
DROP TABLE #TEMP2
|
||||
DROP TABLE #TEMP_PLANORDER_ID_LIST
|
||||
DROP TABLE #TEMP_PLANORDER_RESERVELINK
|
||||
DROP TABLE #TEMP_PLANORDER_RESERVELINK2
|
||||
Reference in New Issue
Block a user