2009-08-06 7 views

答えて

12

リファレンス表現ではなく、別名を取得します。

SELECT ID, datediff("mi", Start, [End]) as Total 
FROM TimeTable 
WHERE datediff("mi", Start, [End]) is not null 

EDIT、テーブルやカラム名として「エンド」などの予約語を使用しないでくださいEND

+1

とwrap End in [] – Sk93

+0

笑、それは私のパーサーがちょうど言ったことです。 – cmsjr

+1

select句は、where句の前に論理的に処理されます。エイリアスは、select句が処理されるまで使用できません。 (ほぼ?)ORDER BYを除くすべての句は、SELECT句の前に処理されます。 by order句は、select句の後に処理されるため、エイリアスを使用できます。 –

1

の使用のための構文エラーを防ぐために更新! TaskStart/TaskEndやJobStart/JobEndやStartDate/EndDateのようなものを使用すると、テーブル/カラム名の前後に[]を追加する必要がなくなるたびに感謝します....

+0

それは例の場合だけの名前でした.. – agnieszka

+1

本当に答えはありません。コメントとしては良いでしょう。 – Nick

+0

@Nick、投票に感謝します!私の答えに従ってください "OP"のエラー '無効な列名'が解決される 'テーブルや列名'として "終了"のような予約語を使用しないでください。私の答えは技術的に間違っていますか? –