Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

SQL hjælp vedr. nested SUM() mm.

Af Super Supporter Djin | 14-11-2011 14:28 | 1240 visninger | 5 svar, hop til seneste
Hey Hol Jeg sidder og pusler med en SQL forespørgsel, som jeg ikke kan få til at hænge ordentligt sammen. Jeg har to tabeller user: id: int (KEY) navn: varchar spending: id: int (KEY) userID: int year: int amount: double Det, jeg er interesseret i, er, at få en oversigt over hvad hver bruger har brugt for i et givent år.. Hvis de ikke har brugt noget skal de ikke figurere på resultatet.. så hvis tabellerne udfyldes således user: 0 - user1 1 - user2 spending: 0 - 0 - 2010 - 25 1 - 0 - 2010 - 74 2 - 1 - 2011 - 100 3 - 1 - 2011 - 75 vil jeg meget gerne få spyttet navn-år-amount ud således: user1 - 2010 - 99 user2 - 2011 - 175 Lige nu roder jeg rundt med noget omkring SELECT user.navn, spending.year, (SELECT SUM(spending.amount) FROM spending WHERE spending.userID = user.id) FROM user, spending Nogen der kan hjælpe?
--
Intel i7 920 D0 stepping || Gigabyte EX58-UD5 || 3x2gb OCZ Platinum || Sapphire 4870 1gb || Samsung 2233RZ || OCZ Agility EX 60GB
#1
LgT
Junior Supporter
14-11-2011 14:46

Rapporter til Admin
I MSSQL ville jeg køre: Select distinct U.Navn, S.year sum(S.amount) from user U inner join spending S on U.id = S.userid group by U.Navn, S.year det er så behageligt at bruge aliaser til sine tabeller, istedet for at skrive dem fuldt ud.
--
#2
LgT
Junior Supporter
14-11-2011 14:49

Rapporter til Admin
Skal det hænge sammen, mht performance, bør du selvfølgelig have indexes på spending.userid samt year.
--
#3
mads-c.dk
Gigabruger
14-11-2011 15:11

Rapporter til Admin
#1 du behøver vel strengt taget ikke distinct når du samtidig har en group by...
--
__________________________________________ AMD Phenom II X3 720 / Asus Crosshair IV 890FX XFX HD4890 1 GB / 4 GB DDR3-1333 / OZC Revodrive
#4
Djin
Super Supporter
14-11-2011 15:28

Rapporter til Admin
Mange tak #1 :D Det løste det for mig!
--
Intel i7 920 D0 stepping || Gigabyte EX58-UD5 || 3x2gb OCZ Platinum || Gigabyte Radeon HD 6970 Windforce || Samsung 2233RZ || OCZ Agility EX 60GB
#5
LgT
Junior Supporter
15-11-2011 09:16

Rapporter til Admin
#3 det kunne der være noget om -det må være vanens magt :-)
--

Opret svar til indlægget: SQL hjælp vedr. nested SUM() mm.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning