2013-10-10 33 views
0

我想根據某些標準進行計數,但無法獲得正確的標準。Msg 245,Level 16,State 1,Line 1

  • 不包括賬戶類型:(8)非會員債券贖回; (十五)限制房地產; (16)莊園無限制和(17)莊家直接。
  • 排除有警告代碼帳戶50和已經關閉的90天或以上
  • 分享ID 01S排除死者
  • 排除重複的社會保障號

這是我的查詢:

;with records as 
(
select AD.AccountNumber AS ACCOUNT_NUMBER, 
     SD.ShareType AS TYPE, 
     SD.SharePrimeNameSSN AS SSN, 
     AD.AccountPrimeLongName AS NAME, 
     SD.PROCESSDATE AS DATE, 
row_number() over (partition by SD.sharePrimeNameSSN 
order by SD.SHARETYPE ASC) N  
from arcu.ARCUAccountDetailed AD 
join arcu.ARCUShareDetailed SD 
on AD.accountnumber = sd.accountnumber AND 
AD.ProcessDate = SD.ProcessDate 
where 
AD.AccountPrimeNameDeathDate IS NULL AND 
AD.AccountStatus = 'OPEN' AND 
SD.ShareStatus = 'OPEN' AND 
(SD.ShareType != '8' AND SD.ShareType != '15' AND SD.ShareType != '16' 
AND SD.ShareType != '17') AND 
(((AccountWarningcode1 != '50' AND 
AccountWarningcode2 != '50' AND 
AccountWarningcode3 != '50' AND 
AccountWarningcode4 != '50' AND 
AccountWarningcode5 != '50' AND 
AccountWarningcode6 != '50' AND 
AccountWarningcode7 != '50' AND 
AccountWarningcode8 != '50' AND 
AccountWarningcode9 != '50' AND 
AccountWarningcode10 != '50' AND 
AccountWarningcode11 != '50' AND 
AccountWarningcode12 != '50' AND 
AccountWarningcode13 != '50' AND 
AccountWarningcode14 != '50' AND 
AccountWarningcode15 != '50' AND 
AccountWarningcode16 != '50' AND 
AccountWarningcode17 != '50' AND 
AccountWarningcode18 != '50' AND 
AccountWarningcode19 != '50' AND 
AccountWarningcode20 != '50') AND 
(ShareID = 001 AND ShareCloseDate >= (GetDate() - 90))) 
AND 
AccountPrimeNameDeathDate is null 
)) 
select Count(*) from records 
where N = 1 

我收到以下錯誤

Msg 245, Level 16, State 1, Line 1 
Conversion failed when converting the varchar value '5.00' to data type int. 

回答

0

我覺得你ShareID是不是數字字段和錯誤來源於此:

ShareID = 001 

你可能想

ShareID = '001' 
相關問題