webForumDet fria alternativet

Disctinct och count

10 svar · 200 visningar · startad av erka

erkaMedlem sedan dec. 19994 597 inlägg
#1

Jag har en tabell som heter TblUser och den har 3 fält

TblUserID - räknare, primärnyckel
TblUserName - text
TblUserAlbumName - text

Jag vill skriva ut UserName distinct så jag bara får en av varje användare efter det ska den räkna hur många ggr den användaren finns tex

Kalle (4)
Bosse (2)
Lisa (1)

Hur skriver jag en sådan distinct och count satts, jag har sökt med inte funnit svar..tacksam

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19994 597 inlägg
#2

Det går väll försten inte, jag måste väll göra 2 sqlfrågor och sedan loopa igenom den i varandra så att säga

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19994 597 inlägg
#3

Löste det med att ta en å göra en nya sqlfråga inne i loopen..

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Gör inte så.


select TblUserName,count(*) as antal
  from TblUser
 group by TblUserName

Varför använder du inte varchar för dessa kolumner

TblUserName - text
TblUserAlbumName - text

------------------
essentitia preter non sans multiplicandum

@ndersMedlem sedan juni 200026 914 inlägg
#5
select distinct tblUserName, count(tblUserName) from tblUser group by tblUserName

men jag förstår inte alls varför du har prefixet tbl till dina fältnamn. fld borde vara mer passande eller ännu hellre, något som vittnar om fältets typ.

------------------
mördar-anders, det är jag.

erkaMedlem sedan dec. 19994 597 inlägg
#6

@nders, faktiskt har jag inte de namnen, jag skrev bara några enkla rakt ur skallen så folk förstår typ :)

Tack killar, återkommer om jag misslyckas något mer

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19994 597 inlägg
#7

återkomm snabbt, förstår inte och vet inte om man kan skriva en fråga så här

Nu har jag samma tabell som jag använde innan och så har jag en tabell som heter TblFoto och den tabellen har

TblFotoID - räknare
TblUserID - tal (relation till TblUserID i TblUser)
TblFotoFile - text
TblFotoDesc - text

jag skickar TblUserName med en querystring till typ
showfotoalbums.asp?ShowUser=Pelle

Där ska jag plocka fram alla album som har pelle som TblUserName (ifrån TblUser) och sen ska jag räkna hur många foton i det albumet som är aktuellt i loopen som hör till just det blUserID. Förstår ni

så det typ kan se ut så här

Pelles Album
>>Svartvita foton (34 st bilder)
>>Färgfoton (12 st bilder)

Jag vet hur man kan göra det om man tar 2 sql frågor, men går det att lösa med endast en ?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19994 597 inlägg
#8
SQLStmt ="SELECT UserAlbums.AlbumID, UserAlbums.AlbumName, UserAlbums.AlbumContent, UserAlbums.AlbumUser, UserPictures.UserPicAlbumID, Count(UserPictures.UserPicID) FROM FotoGalleri, UserAlbums (LEFT JOIN UserPictures ON UserAlbums.AlbumID = UserPictures.UserPicAlbumID) WHERE UserAlbums.AlbumUser = '"& Request.Querystring("ShowUser") &"' group by UserPictures.UserPicID"

Det fungerar inte att göra så här, har jag tänkt helt käpprätt åt skogen eller är jag på rätt väg

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 465 inlägg
#9
select tblUserName,tblFotoDesc,count(*)
  from tblFoto join tblUsers
    on tblFoto.userid = tblUsers.userid
 group by tblUserName,TblFotoDesc
 order by tblUserName

Du får då upp en rad för varje unik kombination av tblUserName och tblFotoDesc, så om du vill ha den utskriften du visade, så får du själv hålla reda på när tblUserName byter värde.

------------------
essentitia preter non sans multiplicandum

LarsGMedlem sedan dec. 200012 465 inlägg
#10

Alla kolumner i select-listan, som inte ingår i en aggregatfunktion, måste vara med i group by.

Så om du samtidigt vill ha upp en massa information om varje foto och även totala antalet foton så är det kanske något dylikt detta du vill ha


select tblFoto.*, (select count(*) from tblFoto where tblUserId = t.tblUserid)
from tblFoto t

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19994 597 inlägg
#11

Tackar tackar, ska leka lite nu

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb