rmunsonusadrug
asked on
Microsoft SQL DTS Package Invalid Pointer Error
I have a group of statements that work fine in Query Analyzer but when I put them in a DTS Package, they fail with the error invalid pointer. What am I doing wrong? My code is attached.
DECLARE @GOODCS TABLE (Store Char(4), Question2 Numeric(9,0), Question5 Numeric(9,0), Question7 Numeric(9,0), Total Numeric(9,0), NumofCalls Numeric(9,0), RxAvg Numeric (9,2))
DECLARE @BADCS TABLE (Store Char(4), Question2 Numeric(9,0), Question7 Numeric(9,0), Total Numeric(9,0), NumofCalls Numeric(9,0), FrontAvg Numeric (9,2))
DECLARE @seldate as varchar(8)
SET @seldate=cast(year(DATEADD(m,-1, Dateadd(d,1-DATEPART(d,getdate()),GETDATE()))) as varchar(4)) +
cast(month(DATEADD(m,-1, Dateadd(d,1-DATEPART(d,getdate()),GETDATE()))) as varchar(2)) + '00'
INSERT INTO @GOODCS
SELECT Left([M3_CST#],4) AS Store,
Sum(CAST([M3_QA02] AS NUMERIC(9,0))) AS [Question2],
Sum(CAST([M3_QA05] AS NUMERIC(9,0))) AS [Question5],
Sum(case when [M3_QA07]='1' then 5 else 1 end) AS [Question7],
Sum(CAST([M3_QA02] AS NUMERIC(9,0))+CAST([M3_QA05] AS NUMERIC(1,0))+(case when [M3_QA07]='1' then 5 else 1 end)) AS Total,
Count([M3_CST#]) AS [NumofCalls],
Sum(CAST([M3_QA02] AS NUMERIC(9,0))+CAST([M3_QA05] AS NUMERIC(1,0))+(case when [M3_QA07]='1' then 5 else 1 end))/Count([M3_CST#])/3 AS [RxAvg]
FROM MKP003_RAW
WHERE (M3_DATE>=@seldate)
GROUP BY Left([M3_CST#],4), M3_FLOW, M3_CMPL
HAVING ((M3_FLOW='A') AND ((M3_CMPL)='Y'))
ORDER BY Left([M3_CST#],4)
INSERT into @BADCS
SELECT Left([M3_CST#],4) AS Store,
Sum(CAST([M3_QA02] AS NUMERIC(9,0))) AS [Question2],
Sum(CAST([M3_QA07] AS NUMERIC(9,0))) AS [Question7],
Sum(CAST([M3_QA02] AS NUMERIC(9,0))+CAST([M3_QA07] AS NUMERIC(1,0))) AS Total,
Count([M3_CST#]) AS [NumofCalls],
Sum(CAST([M3_QA02] AS NUMERIC(9,0))+CAST([M3_QA07] AS NUMERIC(1,0)))/Count([M3_CST#])/2 AS [FrontAvg]
FROM MKP003_RAW
WHERE (M3_DATE>=@seldate)
GROUP BY Left([M3_CST#],4), M3_FLOW, M3_CMPL
HAVING ((M3_FLOW='C') AND ((M3_CMPL)='Y'))
ORDER BY Left([M3_CST#],4)
SELECT bcs.Store AS GL,
LEFT (CAST(DATENAME(month, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))) AS CHAR), 3) AS [Time],
Fiscal = CASE When Right(RTRIM(('0' + CAST (Month (DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))) AS CHAR))),2) > 9 THEN
'FY20' + CAST ((CAST (Right(CAST(Year (DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))) AS Char(4)),2) AS INT) + 1) AS CHAR (2))
Else 'FY20' + Right(CAST(Year (DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))) AS Char(4)),2) End,
ISNULL(gcs.Total,0) as RxTotal,
ISNULL(gcs.NumofCalls,0) As RxNumofCalls,
ISNULL(gcs.RxAvg,0) AS RxAvg,
bcs.Total as FrontTotal,
bcs.NumofCalls As FrontNumofCalls,
bcs.FrontAvg,
cast (Case when gcs.NumofCalls Is Null
then FrontAvg
else ((RxAvg*gcs.NumofCalls)+ (FrontAvg*bcs.NumofCalls))/(gcs.NumofCalls+bcs.NumofCalls)
end as Numeric(9,2)) AS [OverallAvg]
FROM @GOODCS gcs RIGHT JOIN @BADCS bcs ON gcs.Store = bcs.Store
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks so much. I've been writing SQL statements for a while but I haven't used DTS much.
Which bit fails? You have two inserts and a select?
Regards
David