[解決済み】WHERE句でカラム・エイリアスを参照する場合
2022-04-11 14:58:55
質問
SELECT logcount, logUserID, maxlogtm
, DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE daysdiff > 120
私は
日差というカラム名が無効です。
Maxlogtmはdatetimeフィールドです。 些細なことでイライラするんですよね。
解決方法は?
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)
通常、フィールド・エイリアスは
WHERE
節があります。(これは、全体の
SELECT
の後に、エイリアスも含めて適用されます。
WHERE
節があります)。
しかし、他の回答にもあるように、SQLで強制的に
SELECT
の前に処理されるように
WHERE
節があります。これは通常、論理的な操作順序を強制するための括弧や、共通テーブル式(CTE)を用いて行われる。
括弧/サブセレクト
SELECT
*
FROM
(
SELECT
logcount, logUserID, maxlogtm,
DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
) as innerTable
WHERE daysdiff > 120
また、CTE版については、Adamの回答を参照してください。
関連
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】SQL Serverでdatetimeの時間部分を削除する最良の方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 "指定された集約関数を含まないクエリを実行しようとしました。"
-
[解決済み] ERROR: 参照されたテーブル "bar" の与えられたキーに一致するユニークな制約がありません。
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み】SQLが単一グループのグループ関数でないこと
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。