Avatar billede pollas Nybegynder
08. januar 2003 - 13:37 Der er 14 kommentarer og
1 løsning

4 næste datoer fra 9 forskellige felter

Jeg har en database, hvor der bl.a. er 9 forskellige datofelter (dato1-dato9). Jeg skal have valgt de 4, der kommer først efter dags dato, og basedesignet er desværre ikke noget jeg kan ændre :)

Hvad er smartest? Kan selvfølgelig lave en midlertidig tabel, og vælge derfra, men der er ikke en smartere måde?

På forhånd tak.
Avatar billede bredum Nybegynder
08. januar 2003 - 13:53 #1
Avatar billede pollas Nybegynder
08. januar 2003 - 13:56 #2
Cool - superpraktisk. Dog er det største problem, at datoerne ligger i forskellige felter, og derfor enten må gennem et array eller en tmp tabel først. Men hvad er smartest?
Avatar billede Spotgun Seniormester
08. januar 2003 - 13:58 #3
Sorter dato-felterne i din sql-sætning så de står ældst til nyeste, og pløj dem igennem med en if-sætning der så udskriver de første 4 datoer der forekommer, som er nyere end dags dato.

Hvis jeg har misforstået det, og du vil ha' dem der er ældre end dags dato, så skulle samme metode nu kunne bruges alligevel. :-)
Avatar billede Spotgun Seniormester
08. januar 2003 - 13:58 #4
Et array er nok nemmest at ha' med at gøre, hvis du blot skal bruge det i din asp...
Avatar billede bredum Nybegynder
08. januar 2003 - 14:03 #5
måske noget med
SQLstr = "select * from mindatotabel order by TO_DAYS(now()) desc;"

er ikke testet :-)
Avatar billede pollas Nybegynder
08. januar 2003 - 14:07 #6
Men så skal jeg vel også have data fra felterne 1-9 smidt i en midlertidig tabel - problemet er som sagt, at datoerne er fordelt på 9 forskellige felter...
Avatar billede Spotgun Seniormester
08. januar 2003 - 14:08 #7
Hvorfor vil du smide dem i en midlertidig tabel? Du kan jo bare smide de 9 forskellige datoer i dit array, og rode rundt med dem der, for at spare databasekald...
Avatar billede bredum Nybegynder
08. januar 2003 - 14:09 #8
hvis du skriver select * from mintabel tager du alle felter i din tabel selvom der er flere felter i din tabel
Avatar billede bredum Nybegynder
08. januar 2003 - 14:12 #9
spotgun> jeg har den erfaring at man skal lade databasen arbejde isteden for IISen.
Avatar billede Spotgun Seniormester
08. januar 2003 - 14:18 #10
Klart - men at oprette en midlertidig tabel til at ordne sagerne i virker for mig ret tåbeligt. Så hellere klare det ved at sortere vha. en SQL som vi begge har været inde på, og ordne de sidste småting i ASP'en.
Avatar billede pollas Nybegynder
08. januar 2003 - 14:23 #11
Hmm..muligvis misser jeg noget, men er det ikke svært at sortere i sql, når det er forskellige felter?
Avatar billede Spotgun Seniormester
08. januar 2003 - 14:26 #12
er det kun 1 række i tabellen du skal ordne datoerne i, eller er det de 4 første rækker med datoer efter dags dato du skal ha' fat i?
Avatar billede pollas Nybegynder
08. januar 2003 - 14:38 #13
Jeg har en masse felter, der knytter sig til en enkelt record. 9 af dise er datofelter, og jeg skal på en eller anden måde have fundet de 4 der ligger tættest på dags dato fremover.
Avatar billede Spotgun Seniormester
08. januar 2003 - 14:43 #14
okay - så kan du rigtigt nok ikke bruge sql-metoden.
Du skal så ha' smidt dine datoer fra tabellen og ind i et array, som du derefter får sorteret, og til sidst finder datoerne på.
Avatar billede pollas Nybegynder
09. januar 2003 - 16:13 #15
Endte faktisk med en tmp tabel grundet tidspres, men tak for hjælpen. Array-ideen lyder dog meget fiks, men hvor 'nemt' er det at sortere et array efter andet end alm. tal?
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