SQL クエリに問題があります。テーブル名はdebitordersで、次の列で構成されています。
- ファーストネーム(varchar(50),null)
- 姓(varchar(50),null)
- アカウント番号(varchar(50),null )
- アカウントタイプ(varchar(50),null)
- 銀行名(varchar(50),null)
- 分岐(varchar(50),null)
- 金額(varchar(50),null)
- 日付(日付、null)
これまでのクエリは次のとおりです。
SET @BankName = 'ABSA'
--SET @BankName = 'First National Bank'
SET @QueryResultA = (SELECT CASE @BankName
WHEN 'ABSA' THEN 'ABSA 0040000146162'
WHEN 'First National Bank' THEN 'First National B0020000045603'
END)
--PRINT @QueryResultA
SET @Amount = (SELECT amount FROM debitorders)
SELECT
left(LTRIM(RTRIM(firstname)),1) + '' + CONVERT (varchar(15),LTRIM(RTRIM(surname)),1),
(SELECT left(cast(LTRIM(RTRIM(accountnumber)) as varchar(14))+replicate(' ',14),14) ),
CASE accounttype
WHEN 'cheque'
THEN left(cast('CH' as varchar(3))+replicate(' ',3),3)
WHEN 'savings'
THEN left(cast('SAV' as varchar(3))+replicate(' ',3),3)
WHEN 'credit card'
THEN left(cast('CC' as varchar(3))+replicate(' ',3),3)
WHEN 'other'
THEN left(cast('OTH' as varchar(3))+replicate(' ',3),3)
END,
left(cast(LTRIM(RTRIM(branch)) as varchar(10))+replicate(' ',10),10),
REPLICATE('0', 7 - DATALENGTH (REPLACE(amount,'.',''))) + LTRIM(RTRIM(REPLACE(amount,'.',''))),
REPLACE(CONVERT(VARCHAR, date,103),'/','') AS DebitDate
--REPLACE(CONVERT(VARCHAR(10), date, 104) AS [DD.YYYY.MM]),'.',''
FROM debitorders
WHERE bankname = @BankName
結果は次のようになります。
- 名 (パッド側:なし、長さ:1)
- 名字(パッド側:右、長さ:15)
- 口座番号(パッド側:右、長さ:14)
- accounttype (パッド側:右、長さ:3)
- 枝(パッド側:右、長さ:10)
- 量(パッド側:左、長さ:7)
- 日付 (パッド側:なし、長さ:8、フォーマットを ddyyyymm に設定)
列が認識されないのはなぜですか?