/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
SQL forespørgelse
Fra : Michael Jakobsen


Dato : 30-11-01 23:25

Nu må jeg have noget hjælp, jeg føler jeg har prøvet alt og har
efterhånden nok stirret mig blind på nedenstående.
Jeg har en database, som indeholder en tabel med nogle produkter som
hver især kun er til salg i en vis periode, f.eks fra uge 3 til uge
12.
Hvert produkt har 2 kolonner med henholdsvis en fra_uge og en til_uge.
Brugeren skal så kunne vælge, at få oplyst hvilke produkter der er til
salg i en given periode, og valget foregår via 2 combobokse, en
valg_fra og en valg_til.
Nu kommer problemmet så, at få udtrukket de produkter der falder i den
forespurgte periode.
Er der én eller anden der kan hjælpe ?
Jeg håber spørgsmålet er tydeligt nok, ellers er i mere end velkommen
til at få nærmere oplysninger.
På forhånd tak.


/Goose
--
<URL:mailto:webmaster@goose.dk>
<URL:http://www.goose.dk>

 
 
Thomas Nielsen (01-12-2001)
Kommentar
Fra : Thomas Nielsen


Dato : 01-12-01 14:46

"Michael Jakobsen" <admin@goose.dk> wrote in message
news:4b1g0u4g9hr2r33mjau52v8sje2nsgdcqg@4ax.com...
> Nu må jeg have noget hjælp, jeg føler jeg har prøvet alt og har
> efterhånden nok stirret mig blind på nedenstående.
> Jeg har en database, som indeholder en tabel med nogle produkter som
> hver især kun er til salg i en vis periode, f.eks fra uge 3 til uge
> 12.
> Hvert produkt har 2 kolonner med henholdsvis en fra_uge og en til_uge.
> Brugeren skal så kunne vælge, at få oplyst hvilke produkter der er til
> salg i en given periode, og valget foregår via 2 combobokse, en
> valg_fra og en valg_til.
> Nu kommer problemmet så, at få udtrukket de produkter der falder i den
> forespurgte periode.
> Er der én eller anden der kan hjælpe ?
> Jeg håber spørgsmålet er tydeligt nok, ellers er i mere end velkommen
> til at få nærmere oplysninger.
> På forhånd tak.


SQL = "SELECT * FROM produkter WHERE start_uge >= '" & StartUge & "' AND
slut_uge <= '" & SlutUge & "'

Skal skal så lige inden definere StartUge og SlutUge.

/Thomas



Michael Jakobsen (02-12-2001)
Kommentar
Fra : Michael Jakobsen


Dato : 02-12-01 19:25

On Sat, 1 Dec 2001 14:46:12 +0100, "Thomas Nielsen" <thomas@websup.dk>
wrote:

>SQL = "SELECT * FROM produkter WHERE start_uge >= '" & StartUge & "' AND
>slut_uge <= '" & SlutUge & "'
Dette har jeg prøvet, og det virker ikke helt efter hensigten, og
det er nemmest med et eksempel:
Hvis en vare har en start i uge 1 og en slut i uge 5, så virker det
ikke hvis man ønsker at få vist produkter der også sælges i 2, hvilket
den ovenstående jo gør ?

/Goose
--
<URL:mailto:webmaster@goose.dk>
<URL:http://www.goose.dk>

Jonathan Stein (02-12-2001)
Kommentar
Fra : Jonathan Stein


Dato : 02-12-01 20:48

Michael Jakobsen wrote:

> >SQL = "SELECT * FROM produkter WHERE start_uge >= '" & StartUge & "' AND
> >slut_uge <= '" & SlutUge & "'
> Dette har jeg prøvet, og det virker ikke helt efter hensigten, og
> det er nemmest med et eksempel:
> Hvis en vare har en start i uge 1 og en slut i uge 5, så virker det
> ikke hvis man ønsker at få vist produkter der også sælges i 2, hvilket
> den ovenstående jo gør ?

Har du prøvet at vende ulighedstegnene?

M.v.h.

Jonathan

--
Start med PHP, Perl eller JSP uden at omskrive al din gamle ASP-kode.
jsp-hotel.dk tilbyder nu Chili!Soft ASP på alle hoteller.
http://www.jsp-hotel.dk/




Michael Jakobsen (02-12-2001)
Kommentar
Fra : Michael Jakobsen


Dato : 02-12-01 23:52

On Sun, 02 Dec 2001 20:47:33 +0100, Jonathan Stein <jstein@image.dk>
wrote:

> Har du prøvet at vende ulighedstegnene?
Ja se, det hjalp jo en del på det, dog er den stadigvæk gal hvis jeg
f.eks. har et produkt der er til salg i uge 2-20 og jeg søger efter
uge 3-21, så kommer produktet ikke frem ?
Jeg er ikke sikker på andet, end at der skal bruges en "BETWEEN" et
eller andet sted, jeg kan bare ikke se hvor ?

/Goose
--
<URL:mailto:webmaster@goose.dk>
<URL:http://www.goose.dk>

Jonathan Stein (03-12-2001)
Kommentar
Fra : Jonathan Stein


Dato : 03-12-01 18:15

Michael Jakobsen wrote:

> > Har du prøvet at vende ulighedstegnene?
> Ja se, det hjalp jo en del på det, dog er den stadigvæk gal hvis jeg
> f.eks. har et produkt der er til salg i uge 2-20 og jeg søger efter
> uge 3-21, så kommer produktet ikke frem ?
> Jeg er ikke sikker på andet, end at der skal bruges en "BETWEEN" et
> eller andet sted, jeg kan bare ikke se hvor ?

Du vil altså søge på poster, hvor startUge eller SlutUger (eller
begge) ligger i intervallet!

Lad os sige, at vi vil vise tilbud i perioden fra "forsteUge" til
"sidsteUge". Så skal enten "forsteUge" eller "sidsteUge" ligge i
intervallet mellem start_uge og slut_uge.
Jeg har byttet lidt om på rækkefølgen i forhold til før, SQL'en kommer
til at ligne den måde, jeg har formuleret det ovenfor:

WHERE (forsteUge >= start_uge AND forsteUge <= slut_uge) OR
(sidsteUge >= start_uge AND sidsteUge <= slut_uge)

- det overlades til læseren at lave den præcise opbygning af ovenstående
i det ønskede script-sprog...

M.v.h.

Jonathan

--
Start med PHP, Perl eller JSP uden at omskrive al din gamle ASP-kode.
jsp-hotel.dk tilbyder nu Chili!Soft ASP på alle hoteller.
http://www.jsp-hotel.dk/





Michael Jakobsen (03-12-2001)
Kommentar
Fra : Michael Jakobsen


Dato : 03-12-01 21:57

On Mon, 03 Dec 2001 18:14:56 +0100, Jonathan Stein <jstein@image.dk>
wrote:

> Du vil altså søge på poster, hvor startUge eller SlutUger (eller
>begge) ligger i intervallet!
Ja, det er korrekt

> WHERE (forsteUge >= start_uge AND forsteUge <= slut_uge) OR
> (sidsteUge >= start_uge AND sidsteUge <= slut_uge)
tjaee, det ser logisk nok ud, men det rammer altså heller ikke helt.
Jeg har 3 produkter:
prod. 1 sælges fra uge 1-5
prod. 2 sælges fra uge 3-8
prod. 3 sælges fra uge 2-20
Hvis jeg så vælger at få vist produkter ser sælges i perioden uge 4
til uge 8, så er det kun prod.1 og prod.2 der vises, men prod.3 sælges
jo også i denne periode ?
Min streng ser i øjeblikket således ud:

<%
if request.querystring("action") = "show" then
valg_from = request.form("valg_from")
valg_to = request.form("valg_to")
SQLstmt = "SELECT * FROM produkter WHERE (salg_from >= " & valg_from &
" AND salg_from <= " & valg_to & ") OR (salg_to >= " & valg_from &"
AND salg_to <= " & valg_to & ")"
set rs = conn.execute(SQLstmt)
if rs.eof then
%>
Der er desværre ingen salgsklare produkter i den valgte periode
<%
end if
Do while not rs.eof
%>
<A
HREF="produkter.asp?action=details&id=<%=rs("prodID")%>"><%=rs("prodNavn")%></A><BR>
<%
rs.MoveNext
Loop
rs.close
set rs = nothing
conn.close
set conn = nothing
end if
%>

/Goose
--
<URL:mailto:webmaster@goose.dk>
<URL:http://www.goose.dk>

Michael Jakobsen (04-12-2001)
Kommentar
Fra : Michael Jakobsen


Dato : 04-12-01 08:46

On Mon, 03 Dec 2001 21:57:00 +0100, Michael Jakobsen <admin@goose.dk>
wrote:

>Min streng ser i øjeblikket således ud:
Jeg har nu fundet en løsning som ser ud til at fungerer, og for de der
har fulgt medi tråden og kommet med forslag, kommer her min nye
streng:

SQLstmt = "SELECT * FROM produkter WHERE (salg_from >= " & valg_from &
" AND salg_from <= " & valg_to & ") OR (salg_to >= " & valg_from &"
AND salg_to <= " & valg_to & ") OR " & valg_from & " between salg_from
AND salg_to OR " & valg_to & " between salg_from AND salg_to"

Jeg takker for de input jeg har fået.


/Goose
--
<URL:mailto:webmaster@goose.dk>
<URL:http://www.goose.dk>

Jonathan Stein (04-12-2001)
Kommentar
Fra : Jonathan Stein


Dato : 04-12-01 13:51

Michael Jakobsen wrote:

> > WHERE (forsteUge >= start_uge AND forsteUge <= slut_uge) OR
> > (sidsteUge >= start_uge AND sidsteUge <= slut_uge)
> tjaee, det ser logisk nok ud, men det rammer altså heller ikke helt.
> ...
> SQLstmt = "SELECT * FROM produkter WHERE (salg_from >= " & valg_from &
> " AND salg_from <= " & valg_to & ") OR (salg_to >= " & valg_from &"
> AND salg_to <= " & valg_to & ")"

Jeg kan se du har fået løst problemet, men når logikken er korrekt og resultatet
forkert, må der være noget galt med "oversættelsen" - og det er der også. Du har byttet
om på siderne i ulighederne, men glemt at vende ulighedstegnene.
- Næste problem kommer omkring årsskiftet... I stedet for uge 1, bør du nok bruge
200101, og så fremdeles til uge 52, som bliver 200152. Så virker det hele selv om dine
juletilbud varer lige til påske.

M.v.h.

Jonathan

--
Start med PHP, Perl eller JSP uden at omskrive al din gamle ASP-kode.
jsp-hotel.dk tilbyder nu Chili!Soft ASP på alle hoteller.
http://www.jsp-hotel.dk/




Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste