Please help, i already create store procedure in SQL server 2005.
But there was an error, the message was
Msg 213, Level 16, State 1, Procedure SP_TEST_TAT_2, Line 180
Insert Error: Column name or number of supplied values does not match table definition.
I don't know again how to solve it, I'm programmer AS/400 who learn SQL server. I never create store procedure before. Thanks for all your help!!
This is the code :
USE [test3]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_TEST_TAT_2]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @temp TABLE
(
ID INT IDENTITY(1,1)
,APPROVE_DATE VARCHAR(20)
,[TAT_<=_5_DAYS] FLOAT
,[COUNT_TAT_<=_5_DAYS] FLOAT
,[TAT_6-10_DAYS] FLOAT
,[COUNT_TAT_6-10_DAYS] FLOAT
,[TAT_11-15_DAYS] FLOAT
,[COUNT_TAT_11-15_DAYS] FLOAT
,[TAT_16-20_DAYS] FLOAT
,[COUNT_TAT_16-20_DAYS] FLOAT
,[TAT_>_20_DAYS] FLOAT
,[COUNT_TAT_>_20_DAYS] FLOAT
)
INSERT INTO @temp
SELECT LEFT(APPROVE_DATE,6)
,[TAT_<=_5_DAYS]
,CASE WHEN [TAT_<=_5_DAYS] >0 THEN 1 ELSE 0 END AS [COUNT_TAT_<=_5_DAYS]
,[TAT_6-10_DAYS]
,CASE WHEN [TAT_6-10_DAYS] >0 THEN 1 ELSE 0 END AS [COUNT_TAT_6-10_DAYS]
,[TAT_11-15_DAYS]
,CASE WHEN [TAT_11-15_DAYS] >0 THEN 1 ELSE 0 END AS [COUNT_TAT_11-15_DAYS]
,[TAT_16-20_DAYS]
,CASE WHEN [TAT_16-20_DAYS] >0 THEN 1 ELSE 0 END AS [COUNT_TAT_16-20_DAYS]
,[TAT_>_20_DAYS]
,CASE WHEN [TAT_>_20_DAYS] >0 THEN 1 ELSE 0 END AS [COUNT_TAT_>_20_DAYS]
FROM [test3].[dbo].[TAT_db2] WITH(NOLOCK)
DECLARE @Result1 TABLE
(
ID INT IDENTITY(1,1)
,APPROVE_DATE VARCHAR(20)
,[TAT_<=_5_DAYS] FLOAT
,[COUNT_TAT_<=_5_DAYS] FLOAT
,[TAT_6-10_DAYS] FLOAT
,[COUNT_TAT_6-10_DAYS] FLOAT
,[TAT_11-15_DAYS] FLOAT
,[COUNT_TAT_11-15_DAYS] FLOAT
,[TAT_16-20_DAYS] FLOAT
,[COUNT_TAT_16-20_DAYS] FLOAT
,[TAT_>_20_DAYS] FLOAT
,[COUNT_TAT_>_20_DAYS] FLOAT
,[Total_TAT_Claim] FLOAT
,[Total_Claim] FLOAT
,[Total_%_Claims] FLOAT
,[Total_Weighted_TAT] FLOAT
)
INSERT INTO @Result1
SELECT APPROVE_DATE
,SUM([TAT_<=_5_DAYS]) AS [TAT_<=_5_DAYS]
,SUM([COUNT_TAT_<=_5_DAYS] ) AS [COUNT_TAT_<=_5_DAYS]
,SUM([TAT_6-10_DAYS]) AS [TAT_6-10_DAYS]
,SUM([COUNT_TAT_6-10_DAYS]) AS [COUNT_TAT_6-10_DAYS]
,SUM([TAT_11-15_DAYS]) AS [TAT_11-15_DAYS]
,SUM([COUNT_TAT_11-15_DAYS]) AS [COUNT_TAT_11-15_DAYS]
,SUM([TAT_16-20_DAYS]) AS [TAT_16-20_DAYS]
,SUM([COUNT_TAT_16-20_DAYS]) AS [COUNT_TAT_16-20_DAYS]
,SUM([TAT_>_20_DAYS] ) AS [TAT_>_20_DAYS]
,SUM([COUNT_TAT_>_20_DAYS]) AS [COUNT_TAT_>_20_DAYS]
,(SUM([TAT_<=_5_DAYS]) + SUM([TAT_6-10_DAYS]) + SUM([TAT_11-15_DAYS]) + SUM([TAT_16-20_DAYS]) +SUM([TAT_>_20_DAYS] ) ) AS [Total_TAT_Claim]
,(SUM([COUNT_TAT_<=_5_DAYS]) + SUM([COUNT_TAT_6-10_DAYS]) + SUM([COUNT_TAT_11-15_DAYS]) + SUM([COUNT_TAT_16-20_DAYS]) +SUM([COUNT_TAT_>_20_DAYS] ) ) AS [Total_Claim]
,(SUM([TAT_<=_5_DAYS]) + SUM([TAT_6-10_DAYS]) + SUM([TAT_11-15_DAYS]) + SUM([TAT_16-20_DAYS]) +SUM([TAT_>_20_DAYS])) / (SUM([COUNT_TAT_<=_5_DAYS]) + SUM([COUNT_TAT_6-10_DAYS]) + SUM([COUNT_TAT_11-15_DAYS]) + SUM([COUNT_TAT_16-20_DAYS]) + SUM([COUNT_TAT_>_20_DAYS] ) ) AS [Total_%_Claims]
,(SUM([TAT_<=_5_DAYS]) + SUM([TAT_6-10_DAYS]) + SUM([TAT_11-15_DAYS]) + SUM([TAT_16-20_DAYS]) +SUM([TAT_>_20_DAYS])) / (SUM([COUNT_TAT_<=_5_DAYS]) + SUM([COUNT_TAT_6-10_DAYS]) + SUM([COUNT_TAT_11-15_DAYS]) + SUM([COUNT_TAT_16-20_DAYS]) + SUM([COUNT_TAT_>_20_DAYS] ) ) AS [Total_Weighted_TAT]
FROM @temp
GROUP BY APPROVE_DATE
DECLARE @tempApproveDate TABLE
(
ID INT IDENTITY(1,1)
,APPROVE_DATE VARCHAR(6)
)
INSERT INTO @tempApproveDate
SELECT DISTINCT APPROVE_DATE FROM @Result1
DECLARE @Result TABLE
(
ID INT IDENTITY(1,1)
,APPROVE_DATE VARCHAR(20)
,REMARKS VARCHAR(200)
,[TAT_<=_5_DAYS] FLOAT
,[TAT_6-10_DAYS] FLOAT
,[TAT_11-15_DAYS] FLOAT
,[TAT_16-20_DAYS] FLOAT
,[TAT_>_20_DAYS] FLOAT
,TOTAL FLOAT
)
DECLARE @IDApproveDate INT,@ApproveDate VARCHAR(6)
SET @IDApproveDate = (SELECT TOP 1 ID FROM @tempApproveDate)
WHILE @IDApproveDate IS NOT NULL
BEGIN
SET @ApproveDate = (SELECT APPROVE_DATE FROM @tempApproveDate WHERE ID=@IDApproveDate)
INSERT INTO @Result
SELECT @ApproveDate,'Total TAT',[TAT_<=_5_DAYS],[TAT_6-10_DAYS],[TAT_11-15_DAYS],[TAT_16-20_DAYS],[TAT_>_20_DAYS],[Total_TAT_Claim]
FROM @Result1 WHERE APPROVE_DATE = @ApproveDate
INSERT INTO @Result
SELECT @ApproveDate,'No Of Claims',[COUNT_TAT_<=_5_DAYS],[COUNT_TAT_6-10_DAYS],[COUNT_TAT_11-15_DAYS], [COUNT_TAT_16-20_DAYS],[COUNT_TAT_>_20_DAYS],[Total_Claim]
FROM @Result1 WHERE APPROVE_DATE = @ApproveDate
INSERT INTO @Result
SELECT @ApproveDate,'% Claims',ISNULL([COUNT_TAT_<=_5_DAYS]/NULLIF([Total_Claim],0),0)*100 AS [%_TAT_<=_5_DAYS]
,ISNULL([COUNT_TAT_6-10_DAYS]/NULLIF([Total_Claim],0),0)*100 AS [%_TAT_6-10_DAYS]
,ISNULL([COUNT_TAT_11-15_DAYS]/NULLIF([Total_Claim],0),0)*100 AS [%_TAT_11-15_DAYS]
,ISNULL([COUNT_TAT_16-20_DAYS]/NULLIF([Total_Claim],0),0)*100 AS [%_TAT_16-20_DAYS]
,ISNULL([COUNT_TAT_>_20_DAYS]/NULLIF([Total_Claim],0),0)*100 AS [%_TAT_>_20_DAYS]
,[Total_%_Claims] AS [TOTAL_%_Claims]
FROM @Result1 WHERE APPROVE_DATE = @ApproveDate
INSERT INTO @Result
SELECT @ApproveDate,'Weighted TAT',ISNULL([TAT_<=_5_DAYS]/NULLIF([COUNT_TAT_<=_5_DAYS],0),0) AS [Weighted_TAT_<=_5_DAYS]
,ISNULL([TAT_6-10_DAYS]/NULLIF([COUNT_TAT_6-10_DAYS],0),0) AS [Weighted_TAT_6-10_DAYS]
,ISNULL([TAT_11-15_DAYS]/NULLIF([COUNT_TAT_11-15_DAYS],0),0) AS [Weighted_TAT_11-15_DAYS]
,ISNULL([TAT_16-20_DAYS]/NULLIF([COUNT_TAT_16-20_DAYS],0),0) AS [Weighted_TAT_16-20_DAYS]
,ISNULL([TAT_>_20_DAYS]/NULLIF([COUNT_TAT_>_20_DAYS],0),0) AS [Weighted_TAT_>_20_DAYS]
,ISNULL([Total_TAT_Claim]/NULLIF([Total_Claim],0),0) AS [Weighted_TAT_TOTAL]
FROM @Result1 WHERE APPROVE_DATE = @ApproveDate
SET @IDApproveDate = (SELECT TOP 1 ID FROM @tempApproveDate WHERE ID>@IDApproveDate)
END
DELETE FROM TEMP_TAT_2
INSERT INTO TEMP_TAT_2
SELECT APPROVE_DATE
,REMARKS
,[TAT_<=_5_DAYS]
,[TAT_6-10_DAYS]
,[TAT_11-15_DAYS]
,[TAT_16-20_DAYS]
,[TAT_>_20_DAYS]
,TOTAL
FROM @Result
SELECT APPROVE_DATE
,REMARKS
,[TAT_<=_5_DAYS]
,[TAT_6-10_DAYS]
,[TAT_11-15_DAYS]
,[TAT_16-20_DAYS]
,[TAT_>_20_DAYS]
,TOTAL
FROM TEMP_TAT WITH(NOLOCK)
END