webForumDet fria alternativet

Nästan fungerande BETWEEN fråga

Databaser & SQLur Databashanterare & SQL

0 svar · 148 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

God morgon,

Har en sql fråga som kontrollerar om sBookedFromDateMERGED (från datum) och sBookedToDateMERGED (till datum) är lika med en redan bokad tid.
Är inte kung på SQL frågor så jag har dribblat bort mig lite här. Nedan fungerar för ändamålet men jag behöver en modifikation.

sBookedFromDateMERGED måste få vara lika med bokad_slut. Problemet jag har just nu är att om person 1 bokar 2003-01-01 10:00 - 11:00 och person 2 bokar 2003-01-01 11:00 - 12:00 så får jag konflikt på att 11:00 redan är bokad av person 1.

<% if sBookButton = "Book" then
	'kontrollerar om datumet är upptaget'
	sql2 =  "SELECT ID FROM T_bokad_av_användare "
	sql2 = sql2 & " WHERE (#" &sBookedFromDateMERGED &"# BETWEEN bokad_start AND bokad_slut "
  	sql2 = sql2 & " OR #" &sBookedToDateMERGED  &"# BETWEEN bokad_start AND bokad_slut "
  	sql2 = sql2 & " OR (#" &sBookedFromDateMERGED &"# <= (SELECT Min(bokad_start) FROM T_bokad_av_användare) "
	sql2 = sql2 & " AND #" &sBookedToDateMERGED  &"# >= (SELECT Max(bokad_slut) FROM T_bokad_av_användare)) "
  	sql2 = sql2 & " ) AND produkt = '" &sProdukt &"'"
  '	response.write sql2 &"<hr>"
	set rsTest = connect.execute(sql2) %> 
		<%if rsTest.eof then%>
		<% ' Lägg till i databasen '
		Query = "INSERT INTO T_bokad_av_användare"
		Query = Query & "(produkt, bokad_start, bokad_slut, bokad_av, bokad_av_ip, bokad_av_tidpunkt, kommentar, user_password) VALUES "
		Query = Query & "('" &sProdukt 
		Query = Query &"','" &sBookedFromDateMERGED
		Query = Query &"','" &sBookedToDateMERGED
		Query = Query &"','" &sBookedBy
		Query = Query &"','" &sBookedIp
		Query = Query &"','" &sBookedTidpunkt
		Query = Query &"','" &sBookedKommentar
		Query = Query &"','" &sBookedPassword
		Query = Query & "')"
		'response.write "LÄGGER TILL NYTT I DATABASEN. Query = " &Query
		connect.execute(Query) %> 
		<% else %>
			<script>
			alert('Control your date. It appears that it is allready booked.\n\nConflict with booking # <%=rsTest("ID")%> \n\n[Debug: (add new error)]')
			</script>
		<% end if %>
<% end if%>

ENBART SQL:

sql2 =  "SELECT ID FROM T_bokad_av_användare "
	sql2 = sql2 & " WHERE (#" &sBookedFromDateMERGED &"# BETWEEN bokad_start AND bokad_slut "
  	sql2 = sql2 & " OR #" &sBookedToDateMERGED  &"# BETWEEN bokad_start AND bokad_slut "
  	sql2 = sql2 & " OR (#" &sBookedFromDateMERGED &"# <= (SELECT Min(bokad_start) FROM T_bokad_av_användare) "
	sql2 = sql2 & " AND #" &sBookedToDateMERGED  &"# >= (SELECT Max(bokad_slut) FROM T_bokad_av_användare)) "
  	sql2 = sql2 & " ) AND produkt = '" &sProdukt &"'"

Som vanligt tacksam för lite vägledning.

132 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)