23. januar 2004 - 14:16Der er
26 kommentarer og 3 løsninger
Funktion i sql-kode
Hej
Jeg har et annoncesystem, hvor der skal vises den annonce, som har haft mindst visninger sammenholdt med, hvor langt tid siden det er, at den er blevet oprettet.
Problemet er, at jeg skal bruge værdien fra kollonen "Oprettelse" inde i en funktion, som ligger i sql-forespørgslen. Selvfølgelig kunne man dele den op i to forespørgsler, men det ønsker jeg helst ikke.
Se problemet ved ***:
strQuery="SELECT DISTINCT * FROM PLUSPROFIL_BANNER ORDER BY VISNINGER / " & DateDiff("d", ***Oprettelse***), Date())
DateDiff - funker fint og der er heller ikke det, som jeg spørger om hjælp til :-D
Det er derimod syntaksen for, hvordan man indsætter værdien "Oprettelse" i select-sætningen.
strQuery="SELECT DISTINCT ID, VISNINGER, OPRETTELSE FROM PLUSPROFIL_BANNER ORDER BY VISNINGER / " & DateDiff("d", OPRETTELSE, Date())
Lige nu står "OPRETTELSE", som om den er en variabel (hvilket den jo ikke er), men jeg ved ikke hvordan jeg skal indsætte de nødvendige aprostroffer og/eller plinger omkring "OPRETTELSE", så sql-maskinen opfatter "OPRETTELSE", som en kollone-værdi - ligesom ID og VISNINGER er.
I very much doubt that MySQL understands DateDiff so you cant send it IN the SQL. And because you dont have the value of the field (OPRETTELSE) then you cant calculate the difference. You will need to make your select and then in code calculate the difference
This is working: strQuery="SELECT DISTINCT ID, VISNINGER, OPRETTELSE FROM PLUSPROFIL_BANNER ORDER BY VISNINGER / " & DateDiff("d", "01-01-2001", Date())
This is working: strQuery="SELECT DISTINCT ID, VISNINGER, OPRETTELSE FROM PLUSPROFIL_BANNER ORDER BY VISNINGER / " & DateDiff("d", "01-01-2001", Date())
But this IS NOT in MySQL! If you look at the contents of strQuery I am sure you will see that this part
So as I said earlier Datediff is NOT getting sent to the database it is getting transaled to a number BEFORE it gets sent! This means that you DO NOT have the value of OPRETTELSE to use in Datadiff. So as far as I see it you have two options! 1: Find out IF there is a function in MySQL (NOT vbScript) which can do the same as DateDiff. 2: Select the fields you want and then in code (using Datediff) calculate the difference.
But I have a feeling you may getting a better answer under ASP, as I cant help you with that!
Og jeg beklager, at jeg har lagt spørgsmålet i access-kategorien, men der var igennem lang tid ingen hjælp at hente i mysql-kateogien, og så troede jeg, at jeg kunne smide den her, fordi der kun var tale om sql-kode, som lige så godt kunne være til en access-db.
Ok, men så tager jeg selv de points, som du skulle have haft :-D
Synes godt om
Ny brugerNybegynder
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.