2

プログラムでレポートを作成する必要があります。次に、次の SQL コードを使用して、レポート ビューアーに表示されるデータをフィルター処理します。

SELECT * 
FROM Order 
WHERE OrDate=DATE() OR OrDate>=DATE() - 7;

次へをクリックすると、このエラーが発生します

生成された SELECT ステートメント。')' 付近の WHERE 句にエラーがあります。クエリ テキストを解析できません。

このエラーを解決するのを手伝ってください。

4

2 に答える 2

1

Date が今日の日付を返すことを期待していますか? 私はそれが GETDATE() http://msdn.microsoft.com/en-gb/library/ms188383.aspxだと思った

SQL Server 2008 を使用している場合

select SELECT * FROM [注文] WHERE OrDate >= CONVERT(日付, DATEADD(DAY, -7, GETDATE()))

于 2013-03-02T13:07:54.333 に答える
0

問題はDATE()tablename が原因ではありませんORDER

ほとんどの RDBMS ではORDER、予約済みのキーワードです。予約済みキーワードを使用する場合は、ベンダー固有の区切り文字を使用してエスケープします。ではSQL Server、括弧を使用できます。

SELECT  * 
FROM   [Order] 
WHERE  OrDate = DATE() OR 
       OrDate >= DATE() - 7;

アクセス ドキュメントから、

予約語がすでに使用されている場合は、出現する単語を角かっこ ([ ]) で囲むことにより、エラー メッセージを回避できます。ただし、最善の解決策は、名前を予約語以外に変更することです。

于 2013-03-02T12:49:21.880 に答える