ALTER VIEW [dbo].[View_HJGL_Batch_PointBatchItem] AS /*************点口明细表*************/ SELECT PointBatchItem.PointBatchItemId, PointBatchItem.PointBatchId, PointBatch.ProjectId, PointBatch.UnitId, PointBatch.DetectionTypeId, PointBatch.PointBatchCode, Pipeline.UnitWorkId, PointBatchItem.WeldJointId, (CASE PointBatchItem.PointState WHEN '1' THEN '点口' WHEN '2' THEN '扩透' END) AS PointState, (CASE PointBatchItem.IsBuildTrust WHEN 1 THEN '是' ELSE '' END) AS IsBuildTrust, (CASE WHEN PointBatchItem.IsAudit=1 THEN '是' WHEN (PointBatchItem.IsAudit IS NULL OR PointBatchItem.IsAudit=0) AND PointBatchItem.PointState IS NOT NULL THEN '否' WHEN (PointBatchItem.IsAudit IS NULL OR PointBatchItem.IsAudit=0) AND PointBatchItem.PointState IS NULL THEN '' END) AS PointIsAudit, PointBatchItem.PointDate,--点口日期 (CASE PointBatchItem.IsWelderFirst WHEN 1 THEN '是' ELSE '' END) AS IsWelderFirst, PointBatchItem.RepairDate,--返修日期 PointBatchItem.RepairRecordId, PointBatchItem.CutDate,--切除日期 UnitWork.UnitWorkCode,--工区号 WeldJoint.WeldJointCode,--焊口号 WeldJoint.BackingWelderId AS WelderId, --焊工ID BackingWelder.WelderCode AS BackingWelderCode, CoverWelder.WelderCode AS CoverWelderCode, WeldType.WeldTypeCode, WeldJoint.JointAttribute, WeldJoint.JointArea,--焊接区域 WeldJoint.Size,--实际寸径 WeldingDaily.WeldingDate,--焊接日期 WeldJoint.PipelineId, --管线ID WeldJoint.Material1Id AS Mat, --材质 WeldJoint.Specification, --规格 Pipeline.PipelineCode, --管线号 PipingClass.PipingClassName --管道等级 FROM dbo.HJGL_Batch_PointBatchItem AS PointBatchItem LEFT JOIN dbo.HJGL_Batch_PointBatch AS PointBatch ON PointBatch.PointBatchId=PointBatchItem.PointBatchId LEFT JOIN dbo.HJGL_WeldJoint AS WeldJoint ON WeldJoint.WeldJointId=PointBatchItem.WeldJointId LEFT JOIN dbo.HJGL_Pipeline AS Pipeline ON Pipeline.PipelineId=WeldJoint.PipelineId LEFT JOIN dbo.WBS_UnitWork AS UnitWork ON UnitWork.UnitWorkId=Pipeline.UnitWorkId LEFT JOIN dbo.HJGL_WeldingDaily AS WeldingDaily ON WeldingDaily.WeldingDailyId=WeldJoint.WeldingDailyId LEFT JOIN dbo.Base_PipingClass AS PipingClass ON PipingClass.PipingClassId=Pipeline.PipingClassId LEFT JOIN SitePerson_Person AS BackingWelder ON BackingWelder.PersonId=WeldJoint.BackingWelderId LEFT JOIN SitePerson_Person AS CoverWelder ON CoverWelder.PersonId=WeldJoint.CoverWelderId LEFT JOIN Base_WeldType AS WeldType ON WeldType.WeldTypeId=WeldJoint.WeldTypeId GO CREATE PROCEDURE [dbo].[HJGL_TestPackagePipeList] ( @unitWorkId nvarchar(50) ) /***************管道试压包一览表*********************/ AS create table #SIS( Number1 INT, PipelineCode1 nvarchar(50), TestPackageNo1 nvarchar(50), Number2 INT, PipelineCode2 nvarchar(50), TestPackageNo2 nvarchar(50) ) BEGIN DECLARE My_Cursor CURSOR FOR SELECT ROW_NUMBER() OVER(ORDER BY pipe.PipelineCode,pages.TestPackageNo) AS Number, pipe.PipelineCode,pages.TestPackageNo FROM dbo.PTP_PipelineList pp LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = pp.PipelineId LEFT JOIN dbo.PTP_TestPackage pages ON pages.PTP_ID = pp.PTP_ID WHERE pages.UnitWorkId=@unitWorkId ORDER BY pipe.PipelineCode,pages.TestPackageNo OPEN My_Cursor; --打开游标 DECLARE @Number int,@PipelineCode nvarchar(50),@TestPackageNo nvarchar(50) FETCH NEXT FROM My_Cursor into @Number,@PipelineCode,@TestPackageNo; --读取第一行数据 WHILE @@FETCH_STATUS = 0 BEGIN IF(@Number%2=1) BEGIN INSERT into #SIS values(@Number,@PipelineCode,@TestPackageNo,null,null,null) END ELSE BEGIN UPDATE #SIS SET Number2=@Number,PipelineCode2=@PipelineCode,TestPackageNo2=@TestPackageNo WHERE Number1=@Number-1 END FETCH NEXT FROM My_Cursor into @Number,@PipelineCode,@TestPackageNo; --读取第下一行数据 END CLOSE My_Cursor; --关闭游标 DEALLOCATE My_Cursor; --释放游标 END SELECT * from #SIS DROP TABLE #SIS GO