Sql sætningen skal så tage de 5 næste uge frem, dvs til uge 9. Der skal den finde ud af hvilke nogle uger der er skerevet i. Så skal den i dette tilfælde udskrive:
4, 6 og 8... fordi der er skrevet noget i uge 4, 7 og 9
Er der nogle der kan løse dette problem for de lige 100 ekstra point til kassen... Håber at der er nogle friske nogle til at hjælpe mig :)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du har ikke skrevet hvordan du vil have dem - så derfor får du dem i et array.
<% Dim objConn Dim RS Dim uger(5)
intUge = 4 for i = 0 to 5: uger(i) = intUge + i: next
Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("test.mdb") ' strConn Set RS = objConn.Execute("select distinct uge from tabeluge where uge>=" & CStr(intUge) & " and uge<=" & CStr(intUge+5))
response.write("uger der findes.<br>") Do While Not rs.EOF response.write(RS("uge") & "<br>") uger(RS("uge") - intUge) = 0 ' Uge sættes til 0 fordi den findes. rs.MoveNext Loop rs.Close Set rs = Nothing
response.write("uger der ikke findes.<br>") for i = 0 to 5 if uger(i) <> 0 then response.write(uger(i) & "<br>") ' Uge findes ikke end if next %>
Jeg tror ikke at du kan lave en SQL-sætning der giver resultatet.
Det passer ikke helt coltau, (altså at det ikke kan lade sig gøre)... Det kræver dog en "ekstra" funktion på en sql 2000'er, eller en ekstra tabel på sql 7 (sql 7 tricket vil også virke på en sql 2000'er)...
Det du starter med at gøre er at oprette en tabel :
CREATE TABLE [EkspertenUgeNr] ( [ID] [int] IDENTITY (1, 1) NOT NULL, [UgeNr] [int] CONSTRAINT [PK_EkspertenUgeNr] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] ) ON [PRIMARY] GO
Så skriver du følgende (op til 53) : INSERT INTO EkspertenUgeNr(UgeNr) VALUES(1) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(2) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(3) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(4) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(5) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(6) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(7) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(8) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(9) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(10) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(11) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(12) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(13) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(14) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(15) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(16) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(17) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(18) INSERT INTO EkspertenUgeNr(UgeNr) VALUES(19)
Nu har du så en tabel med alle uge numre der teoretisk kan være...
select top 5 * from ekspertenugenr where ugenr > 5 and ekspertenugenr.ugenr not in (select uge as ugenr from eksperten)
Denne sql sætning viser alle uger der ikke er skrevet noget i endnu...
Hvis du vil have den begrænset så den kun viser ugenr der er mellem din givne startuge, og den sidst indskrevne uge i din tabel (dog maks 5 stadigvæk), så kan du fyre følgende af...
select top 5 * from ekspertenugenr where ugenr > 5 and ekspertenugenr.ugenr < (select max(uge) as ugenr from eksperten) and ekspertenugenr.ugenr not in (select uge as ugenr from eksperten)
Jeg har selv fundet en løsning... Men i for lige nogle points for nogle gode svar....
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.