OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

プログラム(SQL他)質問です

  • すぐに回答を!
  • 質問No.226901
  • 閲覧数39
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 16% (2/12)

 予約時間表をつくってのですが、
思うようにデータベースからデータを取ってくることが出来ません。
お願いします、教えてください。
今の状態では10時から11時の予約を表示しようとすると、10時だけではなく、11時のマスも埋めてしまいます。表は1~15日までの日の行(i)と、9~19時までの、時間列(j)からなっています。
DBの方は、年(yyyy)、月(MON)、日(DAY)、開始時間(A_TIME)、終了時間(B_TIME)会社名(CP)です。
必要な情報があれば、教えて下さい。
よろしくお願いします。
.i = 1
.For i = 1 To 15 Step 1
<TR><TD>@{i}日</TD>

.For j = 9 To 20 Step 1

.pSQL = "SELECT * FROM kaigi1_tbl "
.pSQL = pSQL & "WHERE YYYY = '" & today_nend & "' AND "
.pSQL = pSQL & "MON = '" & mm & "' AND "
.pSQL = pSQL & "DAY = '" & i & "' AND "
.pSQL = pSQL & "((A_TIME <= '" & j & "') AND (B_TIME >= '" & j & "'))"
.SQL pSQL

.if ( WB_DETAIL_CODE = "100" )Then
<TD><FONT>(空白)</FONT></TD>

.elseif (j = 12)Then
<TD><FONT>(空白)</FONT></TD>
.else
.STAT = 0

.LoopFetch
.COMP = DBGetCol(6)
.End Fetch

.if (COMP = "n") THEN
<TD><FONT COLOR="#FF0000">■</FONT></TD>

.elseif (COMP = "h") THEN
<TD><FONT COLOR="#0099FF">■</FONT></TD>
.end if

.end if
.Next j
</TR>
.Next i
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 42% (103/245)

この部分↓ .pSQL = pSQL & "((A_TIME <= '" & j & "') AND (B_TIME >= '" & j & "'))" A_TIME <= '" & j & " ...続きを読む
この部分↓
.pSQL = pSQL & "((A_TIME <= '" & j & "') AND (B_TIME >= '" & j & "'))"

A_TIME <= '" & j & "'は
A_TIME <= '" & i & "'の下記間違いですよね?

この場合、A_TIMEがi「以下」かつB_TIMEがj「以上」になりますよね。
つまりこの例だと、11以下10以上となり、10も11も含まれてしまいます。

だから、
.pSQL = pSQL & "((A_TIME < '" & i & "') AND (B_TIME >= '" & j & "'))"
として、A_TIMEがi「よりも小さく」てB_TIMEがj「以上」のものとすれば
正しく取得できると思いますよ。


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ