11. januar 2007 - 08:56Der er
16 kommentarer og 2 løsninger
Sammensætte 3 sætninger
Jeg har disse tre sætninger:
SQL = "SELECT sum(adinbytes) AS inbytes, sum(adoutbytes) AS outbytes, liip FROM accountingdata INNER JOIN accountingperiod ON adpe_key = peid INNER JOIN localip ON adli_key = liid INNER JOIN traffictype ON adtt_key = ttid WHERE pefromstamp>=" & startdato & " AND pefromstamp<" & slutdato & " AND liip = '" & rs("ip") & "' AND ttname = 'Internationalt' GROUP BY liip"
SQL1 = "SELECT sum(adinbytes) AS inbytes, sum(adoutbytes) AS outbytes, liip FROM accountingdata INNER JOIN accountingperiod ON adpe_key = peid INNER JOIN localip ON adli_key = liid INNER JOIN traffictype ON adtt_key = ttid WHERE pefromstamp>=" & startdato & " AND pefromstamp<" & slutdato & " AND liip = '" & rs("ip") & "' AND ttname = 'Lokalt' GROUP BY liip"
SQL2 = "SELECT sum(adinbytes) AS inbytes, sum(adoutbytes) AS outbytes, liip FROM accountingdata INNER JOIN accountingperiod ON adpe_key = peid INNER JOIN localip ON adli_key = liid INNER JOIN traffictype ON adtt_key = ttid WHERE pefromstamp>=" & startdato & " AND pefromstamp<" & slutdato & " AND liip = '" & rs("ip") & "' AND ttname = 'Dansk' GROUP BY liip"
Hver især tager den den samme ip, og start og slutdato og kører igennem, og finder resultaterne for Dansk, Int, og lokalt. Men synes det virker lidt at kører igennem 3 gange. Jeg ved godt at jeg bare kan lave en hvor man trækker det hele ud engang, og beregner så på det, når man kører den igennem, men kan man ikke ikke kombinere det, så man kun laver et kald og får 6 værdier ud i en omgang.
Men i stedet for at du først kører SQL og får fx 3 resultater tilbage, og så kører SQL1 og får 5 resultater tilbage, så kan du ved at bruge UNION få alle 8 resultater tilbage på en gang.
Ikke nødvendigvis.. Databasen er optimeret til at returnere et resultat, hvor ASP skal spørge i 3 selvstændige omgange for at få det samme resultat kontra 1 resultat.
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.