汇总套数 成套即匹配


 SELECT  * INTO #ALLData FROM MOCombine a  WHERE LEN([a].[FirstMOId]) =LEN('011000189383') AND   [a].[CreateDate]>= DATEADD(MONTH, -3, GETDATE())

    CREATE TABLE #AA([MOCombine] CHAR(12),FullName NVARCHAR(100))
    CREATE TABLE #ZZ([MOCombine] CHAR(12),FullName NVARCHAR(100))
    INSERT INTO [#AA]([MOCombine],[FullName])
    SELECT [a].[MOCombineId], REPLACE([a].[FirstMOId],' ','')+','+ REPLACE([a].[SecondMOId],' ','') FROM #ALLData a  
    WHERE ISNULL( a.[ThirdMOId],'')='' AND ISNULL( a. [FourthMOId],'')=''  --汇总两个的
     UNION ALL
    SELECT [a].[MOCombineId], REPLACE([a].[FirstMOId],' ','')+','+ REPLACE([a].[SecondMOId],' ','')+','+ REPLACE([a].[FourthMOId],' ','')
    FROM #ALLData a  WHERE ISNULL( a.[ThirdMOId],'')='' AND ISNULL( a. [FourthMOId],'')>''  --汇总三个的
     UNION ALL
    SELECT [a].[MOCombineId], REPLACE([a].[FirstMOId],' ','')+','+ REPLACE([a].[SecondMOId],' ','')+','+ REPLACE([a].[ThirdMOId],' ','')+','+ REPLACE([a].[FourthMOId],' ','') FROM #ALLData a  
    WHERE ISNULL( a.[ThirdMOId],'')>'' AND ISNULL( a. [FourthMOId],'')>''  --汇总三个的

    SELECT  ROW_NUMBER() OVER(ORDER BY A.[MOCombine])FSEQ,  [a].[MOCombine],[a].[FullName] INTO #BB FROM #AA a
     DECLARE @hx_cg INT = 1
     DECLARE @PCBQ_A INT=0
     SELECT  @PCBQ_A=MAX( [#BB].[FSEQ]) FROM #BB
        WHILE(@hx_cg<=@PCBQ_A)
            BEGIN
            DECLARE @AA CHAR(12)='' DECLARE @BB NVARCHAR(100)=''
             SELECT @AA =[#BB].[MOCombine], @BB=[#BB].[FullName]  FROM  #BB WHERE [#BB].[FSEQ]=@hx_cg
            INSERT INTO #ZZ ( [MOCombine],[FullName])
            SELECT @AA,LTRIM(parameter_Value) FROM dbo.GetCombineMO(@BB)
            SET @hx_cg=    @hx_cg+1
        
            END

            SELECT  * FROM #ZZ
posted @ 2024-06-24 15:27  暗流断念-备用参考  阅读(19)  评论(0)    收藏  举报