02. juni 2003 - 11:16Der er
18 kommentarer og 1 løsning
Hvis der er flere afdelinger i samme by, tag så kun en af dem.
Denne SQL vil jeg gerne udbygge så hvis der er flere afdelinger sections i samme by så tager den kun en af afdelingerne. Min database består b.l.a. af feltet section som er forskellig. F.eks. har jeg 3 afdelinger i samme by (Århus Uni, Århus Nord og Århus Syd). De har også et felt som hedder City. Det felt er ens for de 3 afdelinger. Der står Århus i alle tre.
SQL = "SELECT t1.* FROM Arranger t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE Section=t1.Section AND StartTime>='" & Timenow & "') ORDER BY Section DESC;"
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.
SQL = "SELECT t1.* FROM Arranger t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE Section=t1.Section AND StartTime>='" & Timenow & "') ORDER BY Section DESC;"
Den virker helt fint, men problemet er bare at den viser alle afdelinger også selvom der er flere afdelinger/sections i en by.
Hvis jeg skriver "City" istedet:
SQL = "SELECT t1.* FROM Arranger t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE City=t1.City AND StartTime>='" & Timenow & "') ORDER BY Section DESC;"
Viser den nøjagtig det samme. Der er ingen forskel.
Så er det vel fordi din min() give to forskellige rækker? DataTypen på StartTime må være text, ikk'? Så prøv at skyde select min(starttime) from arranger where city = 'aarhus' af, og se om du får det ventede resultat - dump det helst her hvis vi skal videre...
starttime section city no syd århus 06-01-2003 nord århus 01-05-2002 uni århus så forlader du dig på streng-sammenligning, hvilket stiller krav til dit datoformat, som jo så nok skal være YYYY-MM-DD for at give anvendelige resultater. Så prøv select min(), OG tilføj where starttime <> 'no' i subselect'en, så den ikke forstyrrer. Så prøv din select min() på et par eksempler, så du er sikker på at du får det rigtige.
Har lige prøvet med flg. data i arranger: id starttime section city active 1 02-06-2003 uni aarhus 1 2 01-06-2003 nord aarhus 1 3 31-03-2003 syd aarhus 1 4 05-06-2003 syd havnen 1 5 06-05-2002 nord havnen 1
select min(starttime) kommer med: 01-06-2003 hvor det jo er 06-05-2002 der er tidligst...
Hej zapzap det virker fint. Den kommer med alle de tidligste møder. starttime har formatet: 03-05-28-19-30-00 yy-mm-dd-hh-mm-ss så ændre lige dit felt. - Så vil det passe med den database jeg har.
Den viser det første møder i alle afdelinger. Det virker fint. Den skal bare være endnu mere avanceret for den vælger alle afdelinger. Den skal kun vælge en afdeling for hver by.
Ja det er jeg med på. Her er nu min arranger: id starttime section city active 1 2003-06-02 uni aarhus 1 2 2003-06-01 nord aarhus 1 3 2003-03-31 syd aarhus 1 4 2003-06-05 syd havnen 1 5 2002-05-05 nord havnen 1 6 no vest aarhus 1
Her er min SQL SELECT t1.* FROM Arranger AS t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE city=t1.city AND StartTime>='" & Timenow & "') ORDER BY [Section] DESC;
og her er mit resultat: id starttime section city active 3 2003-03-31 syd aarhus 1 5 2002-05-05 nord havnen 1
SQL = "SELECT t1.* FROM Arranger AS t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE city=t1.city AND StartTime>='" & Timenow & "') ORDER BY [Section] DESC;"
Jeg har brugt denne. De 2 andre afdelinger skulle alligevel sluttes sammen. Men jeg fik ikke svaret hvis der er flere afdelinger i en by.
SQL = "SELECT t1.* FROM Arranger AS t1 WHERE t1.StartTime<>'no' AND t1.active=1 AND t1.StartTime = (SELECT Min(StartTime) FROM Arranger WHERE city=t1.city AND StartTime>='" & Timenow & "') ORDER BY [Section] DESC;"
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.