2016-12-21 5 views
0

私はRプログラミングのバックグラウンドから来ていますが、今週はCSVの自動化のためにSQLを学習する必要があります。私は現在、SQLモードでMicrosoft Access 2010で作業しています。SQL - SQLスクリプト実行日のデータベーステーブルへの列の追加

既存のテーブルを抽出してフィルタを適用し(次に示すように)、「Report_Date」というタイトルの新しい列を追加して、スクリプトが実行された日付を表示します。次のように

私がこれまで持っているコードは次のとおりです。

SELECT Activity_Report.* INTO [Weekly Report] 
FROM Activity_Report 
WHERE ((([Activity_Report].[on_date])<DateAdd('m',3,Now()) 
And ([Activity_Report].[on_date])>DateAdd('m',-1,Now()))) 
ALTER TABLE Weekly_Report 
ADD Report DATE; 

これはALTER TABLEの機能までうまく働いたとフィルタリングに成功しました。上記のSQLスクリプトを実行すると、次のエラーが表示されます。

クエリ式に構文エラー(演算子がありません)があります。

私はこのエラーに慣れていないので、私のコードでどこが間違っていたかについての助けがあれば大いに感謝します。ありがとう

+0

';' '変更前のクエリ – GurV

答えて

2

あなたがinsert intoselect intoの違いが分かっているとすれば、alter table文はまったく必要ありません。

あなたは、単にあなたのselectの一環として、現在の日付と時刻を追加することができます。

SELECT Activity_Report.* 
     ,Now() AS Report 
INTO [Weekly Report] 
FROM Activity_Report 
WHERE [Activity_Report].[on_date] < DateAdd('m',3,Now()) 
    AND [Activity_Report].[on_date] > DateAdd('m',-1,Now()) 

(私もアクセスのかなり好きです、不要な括弧がたくさん...を処分しました)
+0

これはさらに優れています。 :) – Andre

+0

ありがとう、それは素晴らしいです! – George

2

Accessで1つのクエリで2つのコマンドを実行することはできません。

最初にSELECT INTOクエリを実行します。

次に、DDLクエリを実行します。

関連する問題