| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Hvordan laves en liste over de 10 flittigs~ Fra : Jakob Munck | 
  Dato :  08-09-01 07:03 |  
  |   
            Jeg har en lille asp-baseret kontaktforening, og her er der en tabel der
 viser hvilke af medlemmerne der har logget sig ind og hvornår. Nu kunne jeg
 så godt tænke mig at lave en "hitliste", hvor jeg opregner de 5 mest
 flittige brugere af siten, f.eks. inden for de sidste 30 dage. Men hvordan
 gør jeg det?
 
 Jeg kender koden (count) til at tælle antallet af records i et recordsæt,
 men hvordan laves en hitliste, hvor kun de records der optræder hyppigst
 (inden for en given periode) er oplistet?
 
 
 v.h.
 Jakob Munck
 
 
  
            
             |   |   
            
        
 
            
         
           Anders Holbøll (08-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  08-09-01 14:18 |  
  |   
            Jakob Munck wrote:
 > 
 > Jeg har en lille asp-baseret kontaktforening, og her er der en tabel
 > der viser hvilke af medlemmerne der har logget sig ind og hvornår.
 > Nu kunne jeg så godt tænke mig at lave en "hitliste", hvor jeg 
 > opregner de 5 mest flittige brugere af siten, f.eks. inden for de 
 > sidste 30 dage. Men hvordan gør jeg det?
 
 SELECT TOP 5 ml.m_id, COUNT(*) AS m_logoncount, m.m_name
 FROM memberlogon ml
 INNER JOIN member m OM ml.m_id=m.m_id
 WHERE ml.ml_date>dateadd(d, -30, getdate())
 GROUP BY ml.m_id, m.m_name
 ORDER BY COUNT(*) DESC
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
           Jakob Munck (08-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  08-09-01 23:13 |  
  |   
            Mange tak for denne SQL-kode, den er så avanceret, at jeg i stadet valgte at
 opfinde en anden måde at måle login TOP 10 på, idet jeg installerede en
 tællemekanisme ved hver enkelt bruger. Antallet af logins står nu i et tal
 ved hver enkelt brugers record i databasen.
 
 Men det giver mig så et andet problem, idet min SQL-kode skal udvælge de 10
 brugere, der har det højeste tal i "antalLogin". Men hvis de brugere har det
 samme tal (f.eks. 2 brugere der begge har været logget ind 4 gange), så skal
 de sorteres indbyrdes efter ID-nummer.
 
 Men hvordan er så SQL-koden for at lave både et primært og et sekundært
 sorteringskriterium?
 
 Jeg har skrevet sådan:
 
 strSQL = "SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER
 BY antalLogin DESC"
 
 Men den sorterer kun efter "antalLogin", altså hvor mange gange brugeren har
 besøgt siten.
 
 Hvordan tilføjer man til denne SQL-kode det sekundære sorteringskriterum,
 som altså skal være "IDnr" ?
 
 
 v.h.
 Jakob Munck
 
 
 
  
            
             |   |   
            
        
 
            
         
            Anders Holbøll (08-09-2001) 
         
	
            | Kommentar Fra : Anders Holbøll | 
  Dato :  08-09-01 23:34 |  
  |   
            Jakob Munck wrote:
 > 
 > Men det giver mig så et andet problem, idet min SQL-kode skal 
 > udvælge de 10 brugere, der har det højeste tal i "antalLogin".
 > Men hvis de brugere har det samme tal (f.eks. 2 brugere der
 > begge har været logget ind 4 gange), så skal de sorteres 
 > indbyrdes efter ID-nummer.
 
 I "ORDER BY"-delen lister du blot de kolonner, der skal sorteres efter:
 
 SELECT TOP 10 brugerId, brugerNavn, antalLogin
 FROM bruger
 WHERE NOT (brugerNavn = 'Webmaster')
 ORDER BY antalLogin DESC, brugerId
 
 -- 
 Anders
  
            
             |   |   
            
        
 
            
         
             Jakob Munck (10-09-2001) 
         
	
            | Kommentar Fra : Jakob Munck | 
  Dato :  10-09-01 06:56 |  
  |   
            Mange tak !
 
 jm
 
 
  
            
             |   |   
            
        
 
            
         
            MacMan (10-09-2001) 
         
	
            | Kommentar Fra : MacMan | 
  Dato :  10-09-01 17:55 |  
  |   
            I brevet "3b9a962b$0$270$edfadb0f@dspool01.news.tele.dk" skrev Jakob Munck
 (jakob.munck@tdcadsl.dk) den 09/09/01 0:12:
 
 > strSQL = "SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER
 > BY antalLogin DESC"
 
 "SELECT TOP 10 * FROM bruger where brugerNavn <> 'Webmaster' ORDER BY
 antalLogin DESC, IDnr"
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |