"DATE"列に3回テーブル(sheet1)を結合しようとしています。しかし、次回のテーブルに参加するたびに、元のテーブルの日付の3,6,9ヶ月前の日付にしておきたいと思います。構文エラーMicrosoft Accessを介してSQL自体のテーブルに参加する
別の類似のテーブルを使用してMicrosoft SQL Server Management Studioでこのクエリを試したところ、正しく実行されましたが、Microsoft AccessでSQLを通じてクエリを実行すると、SYNTAX ERROR(演算子がありません)が表示されます。
ありがとうございます、ありがとうございます!
Sheet1には、「Date」と「SA372 returns」という2つの列があります。テストせず
select
Sa.Date ,
Sa.[SA372 returns],
(1+ Sa.[SA372 returns])*(1 + Sb.[SA372 returns])* (1+ Sc.[SA372 returns])*(1+ Sd.[SA372 returns]) as Compound
from sheet1 Sa
left join
sheet1 Sb on Sb.Date = DATEADD(day,-1,dateadd(month,-3,DATEADD(day,1,Sa.Date)))
left join
sheet1 Sc on Sc.Date= DATEADD(day,-1,dateadd(month,-6,DATEADD(day,1,Sa.Date)))
left join
sheet1 Sd on Sd.Date= DATEADD(day,-1,dateadd(month,-9,DATEADD(day,1,Sa.Date)))
order by Sa.date asc
したがって、Sa.Dateに1日を追加し、その結果から3か月を削除し、その結果から1日を削除しますか?インターバル期間は文字列なので、 'DATEADD'ビット全体が' DATEADD( "d"、 - 1、dateadd( "m"、 - 3、DATEADD( "d"、1、Sa.Date) )) ' –
[Multiple INNER JOIN SQL ACCESS](https://stackoverflow.com/questions/20929332/multiple-inner-join-sql-access)の重複している可能性があります。LEFT JOINの場合と同じですが、カッコが必要です。 – Andre
@Andre - JOINSはその質問と重複していますが、DATEADDも見ておく必要があります。 –