I have some problems in my SQL queries. The table name is debitorders which consists of the following columns:
- firstname (varchar(50),null)
- surname (varchar(50),null)
- accountnumber (varchar(50),null)
- accounttype (varchar(50),null)
- bankname (varchar(50),null)
- branch (varchar(50),null)
- amount (varchar(50),null)
- date (date, null)
This is our query so far:
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
The result should be:
- firstname (pad side:n/a, Length:1)
- surname (pad side:right, Length:15)
- accountnumber (pad side:right, Length:14)
- accounttype (pad side:right, Length:3)
- branch (pad side:right, Length:10)
- amount (pad side:left, Length:7)
- date (pad side:n/a, Length:8, setting format to ddyyyymm)
Why aren't the columns recognized?