0

SQL クエリに問題があります。テーブル名はdebitordersで、次の列で構成されています。

  1. ファーストネーム(varchar(50),null)
  2. (varchar(50),null)
  3. アカウント番号(varchar(50),null )
  4. アカウントタイプ(varchar(50),null)
  5. 銀行名(varchar(50),null)
  6. 分岐(varchar(50),null)
  7. 金額(varchar(50),null)
  8. 日付(日付、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. 名 (パッド側:なし、長さ:1)
  2. 名字(パッド側:右、長さ:15)
  3. 口座番号(パッド側:右、長さ:14)
  4. accounttype (パッド側:右、長さ:3)
  5. 枝(パッド側:右、長さ:10)
  6. 量(パッド側:左、長さ:7)
  7. 日付 (パッド側:なし、長さ:8、フォーマットを ddyyyymm に設定)

列が認識されないのはなぜですか?

4

2 に答える 2

0

正しいデータベースに対してクエリを実行していますか? debitorders テーブルはどこで作成されましたか?

最初に、マスター データベースに対してクエリを実行していないことを確認してください。

このリンクにはもう少し詳しい情報があります: http://blog.sqlauthority.com/2012/08/31/sql-server-error-fix-msg-208-invalid-object-name-dbo-backupset-invalid-object- name-dbo-backupfile/

于 2015-03-24T13:33:58.083 に答える
0

変数を宣言する必要があります。

DECLARE @BankName VARCHAR(50) = 'ABSA';

また、@Amount 変数に複数のレコードを設定しようとしています。ここに集計が必要ですか?

于 2015-03-24T12:39:25.550 に答える