Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med min sql-sats för att få fram topplista

Postades av 2006-06-08 23:44:10 - Björn Berglund, i forum access, Tråden har 8 Kommentarer och lästs av 1102 personer

Hej,

Kör med Asp.net 1, VB och Ms Access 2000.

Har genom sql-satsen:

sql2="SELECT medlem_id, COUNT(0) AS antal FROM (SELECT DISTINCT medlem_id, kvall_id FROM tblNarvarande) GROUP BY medlem_id ORDER BY count(0) DESC"

...fått fram en topplista över de som varit närvarande flest kvällar! Typ så här:

Medlem_id Närvarande antal gånger
____10____ _______5______________
____6_____ _______3______________
____9_____ _______1______________

Problemet är att när jag listar dessa i min datagrid vill jag inte visa medlem_id utan det anvnamn som motsvarar medlem_id:t.

Men jag vet inte hur detta ska gå till! Har försökt lägga till i ovanstående sql-sats så att jag hämtar hem även anvnamn från tblMedlem men får det inte till att fungera. Skulle egentligen vilja hämta fler fält från tblMedlem som t ex medlembild! Någon som kan hjälpa mig?

Mina tabeller ser ut så här:

tblNarvarande | narvarande_id (primär), kvall_id, medlem_id
tblMedlem | bl a medlem_id (primär) och anvnamn


Tacksam för hjälp!

//mvh Björn


Svara

Sv: Problem med min sql-sats för att få fram topplista

Postades av 2006-06-09 07:31:23 - Johan Djupmarker

Vaför har du en subselect, du registrerar väl inte samma person mer än en gång för varje "kväll"?

Såhär borde fungera:

sql2="SELECT anvnamn, COUNT(0) AS antal FROM tblNarvarande INNER JOIN tblMedlem ON tblNarvarande.medlem_id = tblMedlem.medlem_id GROUP BY anvnamn ORDER BY count(0) DESC"

/Johan


Svara

Sv:Problem med min sql-sats för att få fram topplista

Postades av 2006-06-09 13:33:37 - Björn Berglund

Hej Johan,

Tack för ditt svar. Har testat ditt förslag nu och får felmeddelande:

"A field or property with the name 'medlem_id' was not found on the selected datasource."

//mvh Björn


Svara

Sv: Problem med min sql-sats för att få fram topplista

Postades av 2006-06-09 15:27:55 - Johan Djupmarker

Det låter som att du försöker visa innehållet i fältet medlem_id, men jag ändrade det till anvnamn istället, det var väl så du vill ha det...? Du får alltså ändra där du presenterar datat från medlem_id till anvnamn.

/Johan


Svara

Sv:Problem med min sql-sats för att få fram topplista

Postades av 2006-06-10 10:01:48 - Björn Berglund

Tack!

Det var som du sa Johan.

Dock skulle jag ju egentligen vilja ha med medlem_id också. Alltså anvnamn är tänkt att vara en asp:hyperlinkcolumn! Och i querystringen vill jag skicka med medlem_id (för att gå till rätt medlemsida om man klickar på anvnamn). Går det?

Dessutom är det möjligt att påverka sorteringen i två steg? Jag vill ju att det ska vara som det är nu: Att den som varit närvarande flest kvällar ligger överst. Men jag skulle vilja styra hur anvnamn-kolumnen sorteras (förslagsvis a till ö). Nu blir det så att Zebran och Giraffen har båda 10 kvällar närvarande men Zebran kommer högre i listan än Giraffen. Om det skulle vara bokstavsordningsmässigt borde ju Giraffen komma först!

Tack på förhand,

//mvh Björn


Svara

Sv: Problem med min sql-sats för att få fram topplista

Postades av 2006-06-10 16:07:03 - Johan Djupmarker

Då borde det bli såhär:

sql2="SELECT tblMedlem.medlem_id, anvnamn, COUNT(0) AS antal FROM tblNarvarande INNER JOIN tblMedlem ON tblNarvarande.medlem_id = tblMedlem.medlem_id GROUP BY tblMedlem.medlem_id, anvnamn ORDER BY count(0) DESC, anvnamn"

/Johan


Svara

Sv:Problem med min sql-sats för att få fram topplista

Postades av 2006-06-11 22:06:12 - Björn Berglund

Du är ju super Johan! Tackar så hemskt mycket, funkade klockrent!

Jag kan ju sql-satser till en viss mån, men detta var över min förmåga!

Nu borde jag ju vara nöjd. Men finns det en möjlighet att du kan förklara för mig hur denna sql-sats fungerar? Har inte fått grepp om Inner join och Group by bl a...Det vore ju kul om man kunde lära sig detta och sedan kanske föra "visheten" vidare...

Återigen tack!

//mvh Björn


Svara

Sv: Problem med min sql-sats för att få fram topplista

Postades av 2006-06-12 07:49:50 - Johan Djupmarker

Nu är jag inte så bra på att förklara pedagogiskt, men jag ska göra ett försök :)

Om du börjar med att kör denna fråga:

SELECT tblMedlem.medlem_id, anvnamn FROM tblNarvarande INNER JOIN tblMedlem ON tblNarvarande.medlem_id = tblMedlem.medlem_id

Nu kommer du "skapa" alla kombinationer av poster från de båda tabellerna där villkoret tblNarvarande.medlem_id = tblMedlem.medlem_id är sant. I detta fallet blir det alltså en listning av medlem_id och anvnamn, en gång för varje tillfälle där de varit närvarande.

Det man vill göra är att gruppera resultatet så att varje "medlem" enbart visas en gång. Det gör man med group by. Efter group by listar du de fält var kombination av värden ska vara unika. COUNT(0) talar bara om hur många poster som har blivit grupperade.

Vet inte om du blev något klokare på detta...? :) Ett tips för att lära sig är att "leka" lite med frågeeditorn i Access och sedan titta på resulterand sql.

/Johan


Svara

Sv:Problem med min sql-sats för att få fram topplista

Postades av 2006-06-12 12:46:27 - Björn Berglund

Tack för försöket Johan!

Tyckte det funka bra med det pedagogiska! :-) Det klarnade en hel del för mig!

Jag återkommer kanske med någon fråga, men tack för nu! (sätter tråden som löst)

//mvh Björn


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 768
27 960
271 761
418
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies