07. juni 2007 - 08:52Der 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;
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;
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)
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.