525 lines
31 KiB
Transact-SQL
525 lines
31 KiB
Transact-SQL
|
|
ALTER PROC [dbo].[sp_ReportQueryByProject]
|
|
@projectId NVARCHAR(50),
|
|
@startTime DATETIME = NULL,
|
|
@endTime DATETIME = NULL,
|
|
@material NVARCHAR(50)=NULL
|
|
|
|
--------------按项目统计---------------------------------
|
|
AS
|
|
|
|
SELECT project.ProjectId,project.ProjectCode,
|
|
ISNULL(total.TotalJot,0) AS TotalJot,ISNULL(total.TotalDin,0) AS TotalDin,
|
|
ISNULL(weldedJot.weldedJot,0) AS weldedJot,ISNULL(weldedJot.weldedDin,0) AS weldedDin,
|
|
CAST((CASE WHEN (ISNULL(total.TotalJot,0))>0
|
|
THEN 100.0 * (ISNULL(weldedJot.weldedJot,0))/(1.0 * ISNULL(total.TotalJot,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS WeldedRate, --焊接完成比例
|
|
ISNULL(oneCheck.OneCheckJotNum,0) AS OneCheckJotNum,ISNULL(oneCheckRepair.OneCheckRepairJotNum,0) AS OneCheckRepairJotNum,
|
|
CAST((CASE WHEN (ISNULL(oneCheck.OneCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.OneCheckRepairJotNum,0))/(1.0 * ISNULL(oneCheck.OneCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS OneOKRate, --焊接一次合格率
|
|
ISNULL(needCheck.NeedCheckJotNum,0) AS NeedCheckJotNum, --应检测焊口数
|
|
ISNULL(checked.CheckedJotNum,0) AS CheckedJotNum, --已检测焊口数
|
|
CAST((CASE WHEN (ISNULL(needCheck.NeedCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(checked.CheckedJotNum,0))/(1.0 * ISNULL(needCheck.NeedCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS CheckedRate, --检测完成比例
|
|
ISNULL(checkRepair.CheckRepairJotNum,0) AS CheckRepairJotNum, --返修焊口数
|
|
ISNULL(expandJot.OneExpandJotNum,0) AS OneExpandJotNum
|
|
|
|
FROM dbo.Base_Project project
|
|
|
|
LEFT JOIN (SELECT COUNT(*) TotalJot ,pipe.ProjectId ,SUM(jot.Size) AS TotalDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
GROUP BY pipe.ProjectId) AS total ON total.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT COUNT(*) weldedJot ,pipe.ProjectId ,SUM(jot.Size) AS weldedDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE jot.WeldingDailyId is not NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY pipe.ProjectId) AS weldedJot ON weldedJot.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT point.ProjectId,COUNT(ndeItem.NDEItemID) AS OneCheckJotNum --一次检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.ProjectId) AS oneCheck ON oneCheck.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT point.ProjectId,COUNT(ndeItem.NDEItemID) AS OneCheckRepairJotNum --一次检测返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.ProjectId) AS oneCheckRepair ON oneCheckRepair.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT point.ProjectId,COUNT(ndeItem.NDEItemID) AS CheckRepairJotNum --返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.ProjectId) AS checkRepair ON checkRepair.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT point.ProjectId,COUNT(pointItem.PointBatchItemId) AS OneExpandJotNum --扩透焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=2
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.ProjectId) AS expandJot ON expandJot.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT jot.ProjectId,COUNT(pointItem.PointBatchItemId) AS NeedCheckJotNum --应检测焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE pointItem.PointState is not null and (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.ProjectId) AS needCheck ON needCheck.ProjectId = project.ProjectId
|
|
|
|
LEFT JOIN (SELECT jot.ProjectId,COUNT(ndeItem.NDEItemID) AS CheckedJotNum --已检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.ProjectId) AS checked ON checked.ProjectId = project.ProjectId
|
|
|
|
WHERE project.ProjectId=@projectId
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
ALTER PROC [dbo].[sp_ReportQueryByPipeLine]
|
|
@projectId NVARCHAR(50),
|
|
@pipeLineId NVARCHAR(50),
|
|
@startTime DATETIME = NULL,
|
|
@endTime DATETIME = NULL,
|
|
@material NVARCHAR(50)=NULL
|
|
|
|
--------------按管线查询统计---------------------------------
|
|
AS
|
|
|
|
SELECT pipeLine.PipelineId,pipeLine.PipelineCode,
|
|
ISNULL(total.TotalJot,0) AS TotalJot,ISNULL(total.TotalDin,0) AS TotalDin,
|
|
ISNULL(weldedJot.weldedJot,0) AS weldedJot,ISNULL(weldedJot.weldedDin,0) AS weldedDin,
|
|
CAST((CASE WHEN (ISNULL(total.TotalJot,0))>0
|
|
THEN 100.0 * (ISNULL(weldedJot.weldedJot,0))/(1.0 * ISNULL(total.TotalJot,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS WeldedRate, --焊接完成比例
|
|
ISNULL(oneCheck.OneCheckJotNum,0) AS OneCheckJotNum,ISNULL(oneCheckRepair.OneCheckRepairJotNum,0) AS OneCheckRepairJotNum,
|
|
CAST((CASE WHEN (ISNULL(oneCheck.OneCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.OneCheckRepairJotNum,0))/(1.0 * ISNULL(oneCheck.OneCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS OneOKRate, --焊接一次合格率
|
|
ISNULL(needCheck.NeedCheckJotNum,0) AS NeedCheckJotNum, --应检测焊口数
|
|
ISNULL(checked.CheckedJotNum,0) AS CheckedJotNum, --已检测焊口数
|
|
CAST((CASE WHEN (ISNULL(needCheck.NeedCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(checked.CheckedJotNum,0))/(1.0 * ISNULL(needCheck.NeedCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS CheckedRate, --检测完成比例
|
|
ISNULL(checkRepair.CheckRepairJotNum,0) AS CheckRepairJotNum, --返修焊口数
|
|
ISNULL(expandJot.OneExpandJotNum,0) AS OneExpandJotNum
|
|
|
|
FROM dbo.HJGL_Pipeline pipeLine
|
|
|
|
|
|
LEFT JOIN (SELECT COUNT(*) TotalJot ,pipe.PipelineId ,SUM(jot.Size) AS TotalDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
GROUP BY pipe.PipelineId) AS total ON total.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT COUNT(*) weldedJot ,pipe.PipelineId ,SUM(jot.Size) AS weldedDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE jot.WeldingDailyId is not NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY pipe.PipelineId) AS weldedJot ON weldedJot.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(ndeItem.NDEItemID) AS OneCheckJotNum --一次检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS oneCheck ON oneCheck.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(ndeItem.NDEItemID) AS OneCheckRepairJotNum --一次检测返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS oneCheckRepair ON oneCheckRepair.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(ndeItem.NDEItemID) AS CheckRepairJotNum --返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS checkRepair ON checkRepair.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(pointItem.PointBatchItemId) AS OneExpandJotNum --扩透焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=2
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS expandJot ON expandJot.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(pointItem.PointBatchItemId) AS NeedCheckJotNum --应检测焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE pointItem.PointState is not null and (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS needCheck ON needCheck.PipelineId = pipeLine.PipelineId
|
|
|
|
LEFT JOIN (SELECT jot.PipelineId,COUNT(ndeItem.NDEItemID) AS CheckedJotNum --已检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY jot.PipelineId) AS checked ON checked.PipelineId = pipeLine.PipelineId
|
|
|
|
WHERE pipeLine.ProjectId=@projectId AND pipeLine.PipelineId=@pipeLineId
|
|
|
|
GO
|
|
|
|
|
|
|
|
ALTER PROC [dbo].[sp_ReportQueryByUnit]
|
|
@projectId NVARCHAR(50),
|
|
@unitId NVARCHAR(50),
|
|
@startTime DATETIME = NULL,
|
|
@endTime DATETIME = NULL,
|
|
@material NVARCHAR(50)=NULL
|
|
|
|
--------------按单位统计---------------------------------
|
|
AS
|
|
|
|
SELECT punit.UnitId,unit.UnitCode,unit.UnitName,
|
|
ISNULL(total.TotalJot,0) AS TotalJot,ISNULL(total.TotalDin,0) AS TotalDin,
|
|
ISNULL(weldedJot.weldedJot,0) AS weldedJot,ISNULL(weldedJot.weldedDin,0) AS weldedDin,
|
|
CAST((CASE WHEN (ISNULL(total.TotalJot,0))>0
|
|
THEN 100.0 * (ISNULL(weldedJot.weldedJot,0))/(1.0 * ISNULL(total.TotalJot,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS WeldedRate, --焊接完成比例
|
|
ISNULL(oneCheck.OneCheckJotNum,0) AS OneCheckJotNum,ISNULL(oneCheckRepair.OneCheckRepairJotNum,0) AS OneCheckRepairJotNum,
|
|
CAST((CASE WHEN (ISNULL(oneCheck.OneCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.OneCheckRepairJotNum,0))/(1.0 * ISNULL(oneCheck.OneCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS OneOKRate, --焊接一次合格率
|
|
ISNULL(needCheck.NeedCheckJotNum,0) AS NeedCheckJotNum, --应检测焊口数
|
|
ISNULL(checked.CheckedJotNum,0) AS CheckedJotNum, --已检测焊口数
|
|
CAST((CASE WHEN (ISNULL(needCheck.NeedCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(checked.CheckedJotNum,0))/(1.0 * ISNULL(needCheck.NeedCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS CheckedRate, --检测完成比例
|
|
ISNULL(checkRepair.CheckRepairJotNum,0) AS CheckRepairJotNum, --返修焊口数
|
|
ISNULL(expandJot.OneExpandJotNum,0) AS OneExpandJotNum
|
|
|
|
FROM dbo.Project_ProjectUnit punit
|
|
LEFT JOIN dbo.Base_Unit unit ON unit.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT COUNT(*) TotalJot ,pipe.UnitId ,SUM(jot.Size) AS TotalDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
GROUP BY pipe.UnitId) AS total ON total.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT COUNT(*) weldedJot ,pipe.UnitId ,SUM(jot.Size) AS weldedDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE jot.WeldingDailyId is not NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY pipe.UnitId) AS weldedJot ON weldedJot.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(ndeItem.NDEItemID) AS OneCheckJotNum --一次检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS oneCheck ON oneCheck.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(ndeItem.NDEItemID) AS OneCheckRepairJotNum --一次检测返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS oneCheckRepair ON oneCheckRepair.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(ndeItem.NDEItemID) AS CheckRepairJotNum --返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS checkRepair ON checkRepair.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(pointItem.PointBatchItemId) AS OneExpandJotNum --扩透焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=2
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS expandJot ON expandJot.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(pointItem.PointBatchItemId) AS NeedCheckJotNum --应检测焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE pointItem.PointState is not null and (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS needCheck ON needCheck.UnitId = punit.UnitId
|
|
|
|
LEFT JOIN (SELECT point.UnitId,COUNT(ndeItem.NDEItemID) AS CheckedJotNum --已检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitId) AS checked ON checked.UnitId = punit.UnitId
|
|
|
|
WHERE punit.ProjectId=@projectId AND punit.UnitId=@unitId AND punit.UnitType='2'
|
|
|
|
|
|
GO
|
|
|
|
|
|
|
|
ALTER PROC [dbo].[sp_ReportQueryByUnitWork]
|
|
@projectId NVARCHAR(50),
|
|
@unitWorkId NVARCHAR(50),
|
|
@startTime DATETIME = NULL,
|
|
@endTime DATETIME = NULL,
|
|
@material NVARCHAR(50)=NULL
|
|
|
|
--------------按单位工程统计---------------------------------
|
|
AS
|
|
|
|
SELECT unitWork.UnitWorkId,unitWork.UnitWorkCode,unitWork.ProjectId,
|
|
ISNULL(total.TotalJot,0) AS TotalJot,ISNULL(total.TotalDin,0) AS TotalDin,
|
|
ISNULL(weldedJot.weldedJot,0) AS weldedJot,ISNULL(weldedJot.weldedDin,0) AS weldedDin,
|
|
CAST((CASE WHEN (ISNULL(total.TotalJot,0))>0
|
|
THEN 100.0 * (ISNULL(weldedJot.weldedJot,0))/(1.0 * ISNULL(total.TotalJot,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS WeldedRate, --焊接完成比例
|
|
ISNULL(oneCheck.OneCheckJotNum,0) AS OneCheckJotNum,ISNULL(oneCheckRepair.OneCheckRepairJotNum,0) AS OneCheckRepairJotNum,
|
|
CAST((CASE WHEN (ISNULL(oneCheck.OneCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(oneCheck.OneCheckJotNum,0)-ISNULL(oneCheckRepair.OneCheckRepairJotNum,0))/(1.0 * ISNULL(oneCheck.OneCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS OneOKRate, --焊接一次合格率
|
|
ISNULL(needCheck.NeedCheckJotNum,0) AS NeedCheckJotNum, --应检测焊口数
|
|
ISNULL(checked.CheckedJotNum,0) AS CheckedJotNum, --已检测焊口数
|
|
CAST((CASE WHEN (ISNULL(needCheck.NeedCheckJotNum,0))>0
|
|
THEN 100.0 * (ISNULL(checked.CheckedJotNum,0))/(1.0 * ISNULL(needCheck.NeedCheckJotNum,0))
|
|
ELSE 0 END) AS DECIMAL(9,2))
|
|
AS CheckedRate, --检测完成比例
|
|
ISNULL(checkRepair.CheckRepairJotNum,0) AS CheckRepairJotNum, --返修焊口数
|
|
ISNULL(expandJot.OneExpandJotNum,0) AS OneExpandJotNum
|
|
|
|
FROM dbo.WBS_UnitWork unitWork
|
|
|
|
LEFT JOIN (SELECT COUNT(*) TotalJot ,pipe.UnitWorkId ,SUM(jot.Size) AS TotalDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
GROUP BY pipe.UnitWorkId) AS total ON total.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT COUNT(*) weldedJot ,pipe.UnitWorkId ,SUM(jot.Size) AS weldedDin
|
|
FROM dbo.HJGL_WeldJoint jot
|
|
LEFT JOIN dbo.HJGL_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE jot.WeldingDailyId is not NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY pipe.UnitWorkId) AS weldedJot ON weldedJot.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(ndeItem.NDEItemID) AS OneCheckJotNum --一次检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=1 AND trustItem.RepairRecordId IS NULL
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS oneCheck ON oneCheck.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(ndeItem.NDEItemID) AS OneCheckRepairJotNum --一次检测返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL AND pointItem.PointState=1
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS oneCheckRepair ON oneCheckRepair.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(ndeItem.NDEItemID) AS CheckRepairJotNum --返修焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointDate IS NOT NULL
|
|
AND trustItem.RepairRecordId IS NULL AND ndeItem.CheckResult='2'
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS checkRepair ON checkRepair.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(pointItem.PointBatchItemId) AS OneExpandJotNum --扩透焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE pointItem.PointState=2
|
|
AND (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS expandJot ON expandJot.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(pointItem.PointBatchItemId) AS NeedCheckJotNum --应检测焊口数
|
|
FROM dbo.HJGL_Batch_PointBatchItem pointItem
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = pointItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
WHERE pointItem.PointState is not null and (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS needCheck ON needCheck.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
LEFT JOIN (SELECT point.UnitWorkId,COUNT(ndeItem.NDEItemID) AS CheckedJotNum --已检测焊口数
|
|
FROM dbo.HJGL_Batch_NDEItem ndeItem
|
|
LEFT JOIN dbo.HJGL_Batch_BatchTrustItem trustItem ON trustItem.TrustBatchItemId = ndeItem.TrustBatchItemId
|
|
LEFT JOIN dbo.HJGL_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
|
|
LEFT JOIN dbo.HJGL_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatchItem pointItem ON pointItem.PointBatchItemId = trustItem.PointBatchItemId
|
|
LEFT JOIN dbo.HJGL_Batch_PointBatch point ON point.PointBatchId = pointItem.PointBatchId
|
|
WHERE (daily.WeldingDate >= @startTime OR @startTime IS NULL)
|
|
AND (daily.WeldingDate <= @endTime OR @endTime IS NULL)
|
|
AND (jot.Material1Id=@material OR @material IS NULL)
|
|
GROUP BY point.UnitWorkId) AS checked ON checked.UnitWorkId = unitWork.UnitWorkId
|
|
|
|
WHERE unitWork.ProjectId=@projectId AND unitWork.UnitWorkId=@unitWorkId
|
|
|
|
|
|
GO
|
|
|
|
|
|
alter table PHTGL_ActionPlanFormation add BidProject nvarchar(100)
|
|
alter table PHTGL_ActionPlanFormation add BidType nvarchar(100)
|
|
alter table PHTGL_ActionPlanFormation add PriceType nvarchar(100)
|
|
alter table PHTGL_ActionPlanFormation add BidPrice nvarchar(100)
|
|
|
|
alter table PHTGL_Contract add IsPassBid nvarchar(50)
|
|
alter table PHTGL_Contract add PassBidCode nvarchar(50)
|
|
|
|
alter table sys_user add DataFrom nvarchar(100)
|