webForumDet fria alternativet

Select * och sum() i samma fråga?

Databaser & SQLur Databashanterare & SQL

14 svar · 420 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

har en sql fråga med select * from..
och skulle även vilja lägga in en sum() i den men får det inte att fungera, hur gör man? går det?

Medlem sedan juni 200032 967 inlägg
#2

Du får lägga alla kolumner i GROUP BY.

Medlem sedan aug. 20011 087 inlägg
#3

är ingen sql guru så det där får du nog helst förklara lite närmare ;)

Medlem sedan juni 200032 967 inlägg
#4

Alla fält du vill hämta får du specificera, och även lägga i GROUP BY-delen i din fråga.

select fld1, fld2, sum(foo) from tbl group by fld1, fld2 order by fld1
Medlem sedan aug. 20011 087 inlägg
#5

Ah ok tack, skall testa det

Hmm har en inner join i min sql sats och trög som jag är fattar jag inte hur jag skall kombinera det hela..

Fälten jag skall ha ut från tabellen kunder är :
Företag

Fälten jag skall ha ut från tabellen tider är :
id
kund
tid
datum
notering
fakturerad

MySQL = "select * from tider inner join kunder ON tider.kund=kunder.id WHERE fakturerad = '" & strFakturerad & "' and tider.kund = '" & intKundID & "' order by datum DESC"

Aldeles för avancerat ;)

Medlem sedan juni 200032 967 inlägg
#6

Du måste nog kanske inte specificera fälten i SELECT-listan, men in i GROUP BY måste de.

Medlem sedan aug. 20011 087 inlägg
#7

Mjo men asså jag förstår inte hur jag skall kombinera det med min sql-fråga :(

Medlem sedan juni 200032 967 inlägg
#8

Börja med att specificera fälten och lägg till en group by. Och vad är det som ska summeras?

Medlem sedan aug. 20011 087 inlägg
#9

Den totala summan av fältet tid

Medlem sedan juni 200032 967 inlägg
#10

Ok, då är det nog enklast att lägga med det som en subquery.

MySQL = "select *, (SELECT sum(tid from tider)) AS totaltid from tider inner join kunder ON tider.kund=kunder.id WHERE fakturerad = '" & strFakturerad & "' and tider.kund = '" & intKundID & "' order by datum DESC"

Borde fungera om du inte använder MySQL med version lägre än 4.1.

mvh

Medlem sedan aug. 20011 087 inlägg
#11

ok tack så himla mycket!
Hade dock 4.017, såg att 4.1 inte var en helt stabil release, fungerar den bra eller kan jag räkna med massa problem med mina sidor ifall jag installerar den?

Medlem sedan juni 200032 967 inlägg
#12

Jag använder inte MySQL, så jag har ingen aning. Men 4.1 funkar säkert klockrent. :)

Medlem sedan aug. 20011 087 inlägg
#13

Nu har jag efter MÅNGA om och men lyckats få igång mysql 4.1 men tyvärr så for jag fortfarande error på min fråga..

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.1.5-gamma-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from tider)) AS totaltid from tider inner join kunder ON tider.k
/tidscript/lista_tid.asp, line 28

Och detta är min sql-fråga

MySQL = "select *, (SELECT sum(tid from tider)) AS totaltid from tider inner join kunder ON tider.kund=kunder.id WHERE fakturerad = '" & strFakturerad & "' and tider.kund = '" & intKundID & "' and tider.id in (" & request.form("val") & ") order by datum DESC"
Medlem sedan juni 200032 967 inlägg
#14

Jag har skrivit fel. Så här:

MySQL = "select *, (SELECT sum(tid) from tider) AS totaltid from tider inner join kunder ON tider.kund=kunder.id WHERE fakturerad = '" & strFakturerad & "' and tider.kund = '" & intKundID & "' and tider.id in (" & request.form("val") & ") order by datum DESC"
Medlem sedan aug. 20011 087 inlägg
#15

tror jag testade det men då laddade sidan i all evighet :d
Aja skall testa igen tack så mycket!

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