0
最新のSQL Serverを使用しています。私はCreatedDate列を持つテーブルを持っています。私はCreatedDateの日付からプラスマイナス7の日付を使用するクエリを記述する必要があります。私はこれについてどうやって行くのか手がかりがありません。カラムの日付に基づく日付範囲
がDECLARE @Date datetime
DECLARE @SevenBefore datetime
DECLARE @SevenAfter datetime
SET @Date = CreatedDate
SET @SevenBefore = DATEADD(day,-7,@Date)
SET @SevenAfter = DATEADD(day,7,@Date)
SELECT *
FROM <table>
WHERE <table> BETWEEN @SevenBefore AND @SevenAfter
これで問題はSQLがエラーを与えるので、私はSETの@DATEとして「CreatedDateに」を使用することができないということです
は、「無効な列名 『CreatedDateに』」
すべてのヘルプは、次のようになります。私の考えは、このました感謝。その列の各日付が異なる可能性があるため、日付をリストアップすることはできません。
おかげでこの場合
作成日はどこですか?表の列の値を使用する場合、なぜ+/- 7をやっているのですか?あなたはこれにいくつかの文脈を与えることができますか?それは別のテーブルにありますか? – JiggsJedi
ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
あなたはクエリが理にかなっていません。それは 'SELECT * FROM
答えて
は、あなたがプログラマとしてだろうと考え、停止、およびデータベースプログラマーとして考え始めるだろう必要があります。
は、あなたのクエリのこの中央部分で作業できるようにします:今すぐ
は、あなたはCreatedDateには、表の列であると言います。この例では、CreatedDateが上記の例以外のテーブルにあると仮定します。この目的のために、テーブルに2つの偽の名前を付けます。 CreatedDateのテーブル、私はを呼び出し、上のクエリのテーブルからtblDataを呼び出します。
上記を見ると、テーブル行全体を日付と比較することはできません。このテーブルには、日付/時刻値を含むフィールドが必要です。この列は
は、これらの仮定を考えると、クエリのようなものになります。これを見るとTargetDate
とします。を、あなたがまだテーブル間のいくつかの他の関連付けを必要とすることは明らかです。作成日に基づいて顧客ごとのすべてのデータ行のみを必要とするのか、またはデータレコードに示されているように作業が完了したCreationsのみが必要なのか、それとも?しかし、完全な仕様がなければ、私たちはそれを手助けすることはできません。
出典
2017-05-02 18:55:37
関連する問題