Nästan fungerande BETWEEN fråga

Databaser & SQL

0 svar · 154 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Trådstart#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.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)