Avatar billede fastpoint Nybegynder
24. marts 2005 - 17:38 Der er 13 kommentarer og
3 løsninger

måske nem SQL sætning?

hvordan gør man det lettest hvis jeg har 2 dato kolonner i min database (ikke lavet dem endnu)
dato 1 er den dato jeg oprettede noget på. dato 2 er udløbs dato.

spørgsmålene er så. hvad skal datatype feltet være for de to kolloner for at det er lettest? bare dato type?  eller number?

min sql sætning ser således ud

strSQL = "SELECT * FROM liste WHERE navn = '" & Request("sp") & "' "

hvordan skal den se ud hvis betingelsen er at dato felt 1 er en måned siden og at dato felt 2 er under 3 måneder?

altså den skal kun udprinte det ting som er oprettet en måned efter og i max 3 måneder.
Avatar billede michael_stim Ekspert
24. marts 2005 - 18:08 #1
Du kan bruge dato, og så bruge BETWEEN.
SELECT * FROM liste WHERE navn =  '" & Request("sp") & "' AND dato1 BETWEEN dato2
Avatar billede fastpoint Nybegynder
24. marts 2005 - 18:13 #2
super, men før jeg kan prøve så er problemet lidt det at det er let nok at tilføje noget i databasen (via .insert into) og så bare sige date() men hvad så med kollonne 2? den skal den skal gerne være 3 måneder frem.

og ville være fedt hvis jeg kunne gøre det sådan at det enten var 3 eller 6 måneder man kunne vælge imellem.
Avatar billede michael_stim Ekspert
24. marts 2005 - 18:13 #3
Blev nok lidt galr her ;o)
Du skal bruge < og >
SELECT * FROM liste WHERE navn =  '" & Request("sp") & "' AND (dagensDato > dato1 AND dagensDato < dato2)
Avatar billede michael_stim Ekspert
24. marts 2005 - 18:15 #4
Avatar billede michael_stim Ekspert
24. marts 2005 - 18:27 #5
SELECT * FROM liste WHERE navn =  '" & Request("sp") & "' AND (dato1 < '" &date() &"' AND '"& DateAdd("M",1, &"' dato1 "&)&" > '"& date() &"')

Ved ikke om denne fungerer, er ikke testet.
Avatar billede fastpoint Nybegynder
24. marts 2005 - 19:09 #6
okay er ved at være klar til at teste.. mangler bare lige en enkelt ting.. jeg finder ud af om dato2 skal være 3 eller 6 måneder frem fra denne komboboks

    <select name="periode" style="border-style:groove;">
                            <option value="???" selected>3måneder</option>
                            <option value="???">6måneder</option>
                                                </select>

normalt kalder jeg det bare sådan her for at få værdien i komboboksen

'" & Request("periode")  & "'

hvordan får jeg lige rettet De to ting til så de går an?

Sidste spørgsmål så er du stjerne for en aften!
Avatar billede michael_stim Ekspert
24. marts 2005 - 19:22 #7
<select name="periode" style="border-style:groove;">
<option value="3" selected>3måneder</option>
<option value="6">6måneder</option>
</select>
periode=Request("periode")
SELECT * FROM liste WHERE navn =  '" & Request("sp") & "' AND (dato1 < '" &date() &"' AND '"& DateAdd("M","& periode &", &"' dato1 "&)&" > '"& date() &"')

Det er nok bedre at fomatere variablerne udenfor sql-stringen, så er det nok lettere at få et overeblik. Men det kan du selv rode med ;o)
Avatar billede fastpoint Nybegynder
24. marts 2005 - 19:32 #8
jeg prøver at bruge denne

AND (datoet < '" &date() &"' AND '"& datoto > '" &date() &"') "

men får syntax fejl i den
Avatar billede fastpoint Nybegynder
24. marts 2005 - 19:33 #9
syntax fejl efter datoto
Avatar billede fastpoint Nybegynder
24. marts 2005 - 20:08 #10
har besluttet mig for at gøre det lidt anderledes.. det skal bare ind i denne if sætning

<% if rs("storrelse") > 3 then %>

må være noget AND efter 3 tallet:)
Avatar billede fastpoint Nybegynder
24. marts 2005 - 20:16 #11
okay tror selv jeg fandt fejlen sidst. Det ser sådan her ud nu

<% if rs("storrelse") > 3 AND (datoet < date()  AND  datoto >  date())  then %>

får ingen syntax fejl kan jeg satse på det virker? kan nemlig ikke sætte på uret:/ ikke min server!
Avatar billede fastpoint Nybegynder
24. marts 2005 - 20:28 #12
jeg spammer dig næsten sorry! er rigtig forvirret.

<% if rs("storrelse") > 4 AND (datoet > DateAdd("M", 1, Date)  AND  datoto <  date())  then %>

er den rigtig hvis datoet er oprettelses dato'en og datoto er udløbs dato'en?
for at if sætning er sand så skal datoet værre mere end 1 måned gammel og datoto skal være større for en dags dato!
Avatar billede kjulius Novice
25. marts 2005 - 18:01 #13
Dine forklaringer på hvad du ønsker, er ikke helt klare, og har ændret sig løbende, men hvis det sidste er det du ønsker, så bør der i stedet stå noget lignende (du er jo åbenbart gået væk fra at gøre det i en SQL sætning):

<% if rs("storrelse") > 4 AND (rs("datoet") < DateAdd("m", -1, Date()) AND rs("datoto") < date()) then %>

altså:

Hvis feltet størrelse er større end 4 og varen er oprettet for mere end 1 måned siden og samtidig er udløbet.

Hvis du, som jeg tror du tidligere var inde på, ønsker at liste de varer, som vil udløbe inden for de næste 3 måneder, skal du ændre det lidt:

<% if rs("storrelse") > 4 AND (rs("datoet") < DateAdd("m", -1, Date()) AND rs("datoto") < DateAdd("m", 3, date())) then %>

Du kan naturligvis udbygge det, med et variabelt antal måneder, som du også tidligere har været inde på, ved at ændre det yderligere lidt:

<% if rs("storrelse") > 4 AND (rs("datoet") < DateAdd("m", -1, Date()) AND rs("datoto") <  DateAdd("m", Request("periode"), date())) then %>

Dette forudsætter naturligvis, at du sætter værien på dine options til antal måneder, som michael stim viste det i sin kommentar kl. 19:22.


Jeg håber denne kommentar kan være til hjælp, og mindske din forvirring lidt...
Avatar billede fastpoint Nybegynder
26. marts 2005 - 14:38 #14
Hej begge to jeg fik løst det sidste her

http://www.eksperten.dk/spm/603323

men da kjulius dit ser ud til at ville have fungeret fint så lig et svar så deler vi alle 3 point. Det betyder michael_stim også lige skal ligge et svar
Avatar billede kjulius Novice
26. marts 2005 - 22:21 #15
Okay, jeg lægger et svar...
Avatar billede michael_stim Ekspert
26. marts 2005 - 23:26 #16
OK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester