VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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 の方はパラメータが足りませんでした とエラーが出てしまいました。

どこが間違っているのか分かりません。
どなたか分かったら教えてください。
また、もっと分かりやすい組立て方がありましたら、教えてください。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -