投稿日 | : 2002/08/20(Tue) 16:22 |
投稿者 | : さー |
Eメール | : |
URL | : |
タイトル | : VB SQL |
アクセステーブルA---項目a1(日付),a2
アクセステーブルB---項目b1(日付)
アクセステーブルC---項目c1,c2
※a2とc2は同じデータ。
月日数---x
としたとき、a1とb1が同月の時、c1にx−a1(日数)をいれるという作業をしたいのですが、
(Cにはa2=c2のデータがあるかどうかは不明、ある場合はc1のみ書く。)
a2=c2のレコードがある時
execute "update C " _
& "set c1 = (datediff('d',a1,x) from A,B,C)" _
& "where (year(A.a)=year(B.b)) and " _
& "(month(A.a)=month(B.b)) and " _
& "(A.a2=C.c2)"
ない時
execute "insert into C(c1) " _
& "select datediff('d',a1,x) " _
& "from A,B,C " _
& "where (year(A.a)=year(B.b)) and " _
& "(month(A.a)=month(B.b)) and "
& "(A.a2<>C.c2)"
と書いたところ、
update の方は、(datediff('d',x,a1) from A,B,C)に演算子がないとエラーが出て、
insert の方はパラメータが足りませんでした とエラーが出てしまいました。
どこが間違っているのか分かりません。
どなたか分かったら教えてください。
また、もっと分かりやすい組立て方がありましたら、教えてください。