Avatar billede humanoid Nybegynder
07. juni 2007 - 08:52 Der er 8 kommentarer og
1 løsning

sum() i where sætning

Kan man i en WHERE sætning bruge SUM() funktionen ?

Er det på en eller anden måde muligt at få nedenstående til at virke.:

SELECT datapoint.Name, SUM(rawdata.TimeStart) AS starttime
FROM ((datapoint JOIN rawdata ON (((datapoint.DataPointIndex = rawdata.DataPointIndex))))
JOIN maintenance ON ((datapoint.DataPointIndex =                          maintenance.DataPointIndex)))
WHERE maintenance.CntMax > SUM(rawdata.TimeStart)
GROUP BY datapoint.DataPointIndex;
Avatar billede langthjem Nybegynder
07. juni 2007 - 09:18 #1
Nu ved jeg jo ikke hvad "maintenance" skal returnere, så det kan godt være at den skal være LEFT JOIN istedet for INNER JOIN. Men jeg tror at følgende vil virke for dig.

SELECT datapoint.Name, SUM(rawdata.TimeStart) AS starttime FROM datapoint
LEFT JOIN rawdata ON (datapoint.DataPointIndex = rawdata.DataPointIndex)
INNER JOIN maintenance ON (datapoint.DataPointIndex = maintenance.DataPointIndex)
WHERE maintenance.CntMax > SUM(rawdata.TimeStart) GROUP BY datapoint.DataPointIndex;
Avatar billede humanoid Nybegynder
07. juni 2007 - 10:36 #2
Den laver samme fejl, som ved min sætning:
Invalid use of group function
Avatar billede langthjem Nybegynder
07. juni 2007 - 11:15 #3
Ahh... ok. Hvad er dit unikke ID i "datapoint"?
Avatar billede humanoid Nybegynder
07. juni 2007 - 11:31 #4
datapoint.ID
Avatar billede humanoid Nybegynder
07. juni 2007 - 11:31 #5
og datapoint.DataPointIndex
Avatar billede 0xffff Nybegynder
07. juni 2007 - 12:50 #6
nej, du kan ikke bruge where. Du skal bruge having.

SELECT datapoint.Name, SUM(rawdata.TimeStart) AS starttime
FROM ((datapoint JOIN rawdata ON (((datapoint.DataPointIndex = rawdata.DataPointIndex))))
JOIN maintenance ON ((datapoint.DataPointIndex =                          maintenance.DataPointIndex)))
GROUP BY datapoint.DataPointIndex;
having maintenance.CntMax > SUM(rawdata.TimeStart)
Avatar billede humanoid Nybegynder
07. juni 2007 - 13:16 #7
Fantastisk !
Avatar billede humanoid Nybegynder
07. juni 2007 - 13:17 #8
Tak for det "65535", kan du ikke lige smide et svar
Avatar billede 0xffff Nybegynder
07. juni 2007 - 13:26 #9
jamen her er et svar så :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester