2017-11-03 14 views
0

次のクエリを実行すると、この構文エラーが発生します。どのようにそれを修正するための任意の提案?クエリが動的に作成されsql-server: '、'の近くの構文が正しくありません

EDIT

、実行されるクエリのサイズは、 '' 近く> 8000 ...

不正な構文です。

SELECT TS.* , --comma added 
     (SELECT CONVERT(DATETIME, [4501001], 103) AS 'AG_VISDATE.U1.[4501001]' 
     FROM form.AG_VISDATE 
     WHERE pid = TS.pid 
       AND COALESCE(visid, '') = 'U1'), 
     (SELECT [4501004] AS 'AG_VISDATE.U1.[4501004]' 
     FROM form.AG_VISDATE 
     WHERE pid = TS.pid 
       AND COALESCE(visid, '') = 'U1') 

私はTS.*後に '' 追加今私はこれらのエラーを受け取る:

メッセージ102、レベル15、状態1、ニアライン1 正しくない構文 ''。

メッセージレベル102、レベル1、状態1、行1 'TS'の近くの構文が正しくありません。どちらも、これらのステートメントの

+0

これは全体のクエリですか? – gotqn

+6

'TS。* 'の後にカンマを追加してみてください。サブクエリは実行時にスカラー値を返す必要があります。 –

答えて

0

TSは両方のステートメントは1

SELECT CONVERT(DATETIME, [4501001], 103) AS 'AG_VISDATE.U1.[4501001]', 
     [4501004] AS 'AG_VISDATE.U1.[4501004]' 
FROM form.AG_VISDATE 
WHERE pid = <SOMETHING> AND 
     COALESCE(visid, '') = 'U1' 
に書き換えることができどこでも

定義されていないため、WHERE句が失敗しますWHEREとして

(SELECT CONVERT(DATETIME, [4501001], 103) AS 'AG_VISDATE.U1.[4501001]' 
     FROM form.AG_VISDATE 
     WHERE pid = TS.pid 
       AND COALESCE(visid, '') = 'U1') 

    (SELECT [4501004] AS 'AG_VISDATE.U1.[4501004]' 
    FROM form.AG_VISDATE 
    WHERE pid = TS.pid 
      AND COALESCE(visid, '') = 'U1') 

に動作します

あなたがしようとしていることは明確ではありません。あなたはあなたのスキーマ、テストデータ、そしてあなたが望む出力を含む方が良いでしょう。

+0

私の編集した投稿を確認してください – atroul

+0

謝罪、私の声明の構文に誤りがありました。今すぐ試してみてください – SEarle1986

+0

編集したコードには意味がないので、私のオリジナルのコメントも削除しました – SEarle1986

0

変換される可能性があります。日付を文字列に変換する必要があるようです。

DECLARE @test date = '2017-10-13' 
SELECT CONVERT(char(10), @test, 103) AS 'AG_VISDATE.U1.[4501001]' 
関連する問題