vendredi 1 janvier 2016

[SqlException (0x80131904): Adding a value to a 'datetime' column caused overflow.]

I think this error is coming because of the dateadd() function but im not sure. Can someone help me toi identify the issue and resolve it. I have casted to a particular date because it is the requirement for the report for which i have written this sp. Please help

ALTER PROCEDURE [dbo].[sp_SelectAllTrackingDetails]
@StrSearch AS VARCHAR(200) = ' CAST(L.NewDate AS datetime) >= CAST(''03/15/2008'' AS datetime)'
AS
CREATE TABLE #TempLeads(Date Datetime,LeadId INT)
INSERT INTO #TempLeads
SELECT DateSubmitted,UID 
FROM WebPageDataCollection.dbo.HomeOwnerwebdata2 
WHERE CAST(DateSubmitted AS datetime) >= CAST('03/15/2008' AS datetime)

EXEC('SELECT L.NewDate      
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=1) AS Generated       
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=3) AS Matched  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=4) AS Notified  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=5) AS Accepted  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=6) AS Rejected  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=12) AS Scheduled  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=7) AS PreBidsPlaced  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=8) AS PreBidsRejected  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=9) AS BidsPlaced  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=10) AS BidsRejected  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=11) AS FeedBackReceived  
, (SELECT COUNT(DISTINCT JOBUID) FROM tblLeadTrackingLog AS LTL WITH (NOLOCK) INNER JOIN #TempLeads TL WITH (NOLOCK) ON LTL.JobUid = TL.LeadId AND DATEDIFF(DD,L.NewDate,TL.Date)=0 WHERE (CONVERT(varchar(10),  LTL.InsertDate, 101) = L.NewDate) AND LTL.LeadStatus=2) AS Deleted  
FROM      
(SELECT ROW_NUMBER() OVER (ORDER BY UID) AS RowNumber      
, CONVERT(varchar(max), DATEADD(dd, 1 - (ROW_NUMBER() OVER (ORDER BY UID)), GETDATE()), 101) AS NewDate      
FROM tblLeadTrackingLog) AS L      
WHERE ' + @StrSearch +  ' ORDER BY L.NewDate DESC') -- CAST(L.NewDate AS datetime) >= CAST('03/06/2008' AS datetime)

Aucun commentaire:

Enregistrer un commentaire