|
| Tricky SQL-sætning Fra : Steen |
Dato : 09-09-02 20:49 |
|
Hej NG
Jeg har en Access2000-database med ca. 400 entries. Hvert entry (hver række)
har 7 kolonner, en for hver ugedag. Hvis entry 22 bliver tilgået en onsdag
øges værdien af række 22 kolonne "onsdag" med 1.
Nu vil jeg gerne selecte de ti mest tilgåede entries i løbet af hele ugen.
Dvs. jeg vil selecte de "TOP 10" entries, hvor man+tir+ons+tor+fre+lør+søn
er højest. MAX()-funktionen lægger sammen over flere rækker i samme
kolonne - jeg har brug for en funktion, der lægger sammen over flere
kolonner i samme række.
Ideer modtages med kyshånd.
Mvh Steen
| |
Mark S. Rasmussen (09-09-2002)
| Kommentar Fra : Mark S. Rasmussen |
Dato : 09-09-02 21:40 |
|
> Ideer modtages med kyshånd.
Jeg har ingen anelse om det er SQL Server specifikt. Men virker
[felt]+[felt2] ikke?
Mvh Mark
---
Postet via www.improve.dk
| |
Jakob Andersen (09-09-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 09-09-02 21:38 |
|
"Steen" <nospam@nospam.dk> wrote
> Jeg har en Access2000-database med ca. 400 entries. Hvert entry (hver
række)
> har 7 kolonner, en for hver ugedag. Hvis entry 22 bliver tilgået en onsdag
> øges værdien af række 22 kolonne "onsdag" med 1.
>
> Nu vil jeg gerne selecte de ti mest tilgåede entries i løbet af hele ugen.
> Dvs. jeg vil selecte de "TOP 10" entries, hvor man+tir+ons+tor+fre+lør+søn
> er højest. MAX()-funktionen lægger sammen over flere rækker i samme
> kolonne - jeg har brug for en funktion, der lægger sammen over flere
> kolonner i samme række.
SELECT TOP 10 (Man + Tirs + Ons + Tors + Fre) AS total FROM <tabel> ORDER BY
total DESC
--
Jakob Andersen
| |
Steen (10-09-2002)
| Kommentar Fra : Steen |
Dato : 10-09-02 09:12 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote:
> SELECT TOP 10 (Man + Tirs + Ons + Tors + Fre) AS total FROM <tabel> ORDER
BY
> total DESC
Ja, det er jo meget godt, men jeg kan jo ikke nøjes med tallene, jeg skal jo
også have de tilhørende id-numre og titler, og
SELECT TOP 10 (mon+tue+wed+thu+fri+sat+sun),id,titel AS total FROM sider
ORDER BY total DESC
virker ikke.
Mvh Steen
| |
Jens Gyldenkærne Cla~ (10-09-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 10-09-02 09:25 |
|
Steen skrev:
> SELECT TOP 10 (mon+tue+wed+thu+fri+sat+sun),id,titel AS total
> FROM sider ORDER BY total DESC
Prøv at flytte "as total" frem til dit beregnede felt. Lige nu
omdøber du bare titelfeltet i resultatsættet.
Du har ikke sagt noget om hvordan det "ikke virker". Hvis du får et
postsæt - som bare er sorteret forkert - kan du nøjes med at flytte
"as total" som beskrevet ovenfor. Men jeg kan forestille mig at
Access (hvis det altså drejer sig om Access) fejler fordi den ikke
kender feltnavnet "total" der står i ORDER BY-delen. Så vidt jeg
husker kan man ikke benytte alias-felter her. Prøv i stedet med:
SELECT TOP 10 (mon+tue+wed+thu+fri+sat+sun) as total,id,titel
FROM sider ORDER BY (mon+tue+wed+thu+fri+sat+sun) DESC
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Steen (10-09-2002)
| Kommentar Fra : Steen |
Dato : 10-09-02 13:03 |
|
"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote
> SELECT TOP 10 (mon+tue+wed+thu+fri+sat+sun) as total,id,titel
> FROM sider ORDER BY (mon+tue+wed+thu+fri+sat+sun) DESC
Fuldstændig korrekt, jeg kan ikke bruge "total" til at sortere efter.
1.000 tak til alle for de hurtige og gode svar; nu virker det hele som det
skal
Mvh Steen
| |
Jakob Andersen (10-09-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 10-09-02 09:25 |
|
"Steen" <nospam@nospam.dk> wrote
> Ja, det er jo meget godt, men jeg kan jo ikke nøjes med tallene, jeg skal
jo
> også have de tilhørende id-numre og titler, og
>
> SELECT TOP 10 (mon+tue+wed+thu+fri+sat+sun),id,titel AS total FROM sider
> ORDER BY total DESC
SELECT TOP 10 id, titel (mon+tue+wed+thu+fri+sat+sun) AS total FROM sider
ORDER BY total DESC
--
Jakob Andersen
| |
Steen (10-09-2002)
| Kommentar Fra : Steen |
Dato : 10-09-02 11:33 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote
> SELECT TOP 10 id, titel (mon+tue+wed+thu+fri+sat+sun) AS total FROM sider
> ORDER BY total DESC
Hvad er det i grunden der afgør, hvad TOP 10 henvender sig til? Det der står
først eller sidst, eller hvad man har efter ORDER BY?
Mvh Steen
| |
Tobias Hinnerup (10-09-2002)
| Kommentar Fra : Tobias Hinnerup |
Dato : 10-09-02 12:25 |
|
"Steen" <nospam@nospam.dk> wrote in message news:alkhpr$4tr$1@sunsite.dk...
> "Jakob Andersen" <jakob@effectus.dk> wrote
>
> > SELECT TOP 10 id, titel (mon+tue+wed+thu+fri+sat+sun) AS total FROM sider
> > ORDER BY total DESC
>
> Hvad er det i grunden der afgør, hvad TOP 10 henvender sig til? Det der står
> først eller sidst, eller hvad man har efter ORDER BY?
ORDER BY
/Tobias
| |
Jens Gyldenkærne Cla~ (10-09-2002)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 10-09-02 12:29 |
|
Steen skrev:
> Hvad er det i grunden der afgør, hvad TOP 10 henvender sig
> til? Det der står først eller sidst, eller hvad man har efter
> ORDER BY?
Det hele. TOP 10 betyder "vælg de 10 første rækker". Hvilke rækker
der udvælges afhænger alene af sorteringen (ORDER BY). Det giver
ikke mening at tale om (TOP 10 brugerID) eller lignende. Uanset
hvor mange eller få felter der er med i forespørgslen vil det være
de samme rækker der er tale om.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
|
|