webForumDet fria alternativet

summera och gruppera

4 svar · 345 visningar · startad av daniel_ra

daniel_raMedlem sedan jan. 2002381 inlägg
#1

har två tabeller typ såhär:
----------------------
tbl_person
personID
personnamn
personadress
----------------------
tbl_stat
statID
statnamn
statartnummer
personID
----------------------

strängarna i statnamn är uppbyggda så enligt följande DD_xxxxxx, AA_xxxxxx osv. Alla personer har registrerat ett antal sådana. Jag vill nu plocka ut statistik över hur många DD och hur många AA som en person har registrerat.

jag vill plocka ut alla uppgifter från tbl_person och ha summerat hur många DD respektive AA som denne har registrerat.

typ såhär:

PersonID, Personnamn, personadress, TOTALDD, TOTALAA
1 person ett testgatan 4 3
2 person två annan gata 2 11

med count(statnamn) och where left(statnamn,2) = "DD" så kan jag ju iallafall plocka ut bara de som har DD men hur gör jag allt i ett..
lite svårt att förklara men om det är någon som vill göra en insats så blir jag jätteglad.

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select tbl_person.PersonID, Personnamn, personadress, 
sum(case when statnamn like 'DD%' then 1 else 0 end) as totalDD,
sum(case when statnamn like 'AA%' then 1 else 0 end) as totalAA
from tbl_person left join tbl_stat on tbl_person.PersonID = tbl_stat.PersonID
group by tbl_person.PersonID, Personnamn, personadress
daniel_raMedlem sedan jan. 2002381 inlägg
#3

hur använder jag mig av group by i slutet, om jag vill plocka ut ännu fler variabler måsta jag då även använda mig av dessa i group by? altså om jag exempelvis även vill ha med telefonnummer m.m. från tbl_person.

kan jag inte använda mig av tbl_person.* istället för alla kolumnnamn?

daniel_raMedlem sedan jan. 2002381 inlägg
#4

kan jag få namnen distinct.. nu plockar den alla rader och markerar för varje rad om det är en etta eller en nolla. kan man få det summerat per person, hoppas du förstår

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det skall bli en rad per person med den frågan jag gav. Kan du utveckla detta? Exemplifiera gärna.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)