Mysql Select MIN/MAX

Generella mjukvarufrågor som inte är beroende av vilket operativsystem som körs skall ställas i denna kategori

Moderator: elf98

Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1237
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Mysql Select MIN/MAX

Inlägg av Plutonium » 18 jun 2010, 00:33

Har en mysql databas vid namn temperatur där jag samlar mina temperaturer. Med koden nedan får jag fram Max, Min & Avg. Men jag får inte till det att förknippa det aktuella datum för Max, Min osv.
Hur löser man detta? Subselect, Join?

Kod: Markera allt

$resultat = mysql_query("SELECT
  			MIN(temperatur) AS Lowest,
  			MAX(temperatur) AS Highest,
  			AVG(temperatur) AS Average
			FROM
  			  temperatur
			WHERE
			  var = 'Ute' AND DATE(datum) = DATE(NOW())");

	while ($row = mysql_fetch_array($resultat)) {


			echo "".$row['Lowest']." °C";
			echo ";".$row['Highest']." °C";
			echo "".round($row['Average'],2)." °C";


		}
http://essunga.org
Moderator - Temperatur.nu

Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5185
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av elf98 » 18 jun 2010, 06:50

Det ser ut att vara en extra högerparantes efter NOW
Driver m.nu och temperatur.nu

Bild Bild

Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5185
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av elf98 » 18 jun 2010, 12:40

Efter en närmare titt inser jag att jag såg fel!
Driver m.nu och temperatur.nu

Bild Bild

Användarvisningsbild
Plutonium
Moderator
Inlägg: 1237
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av Plutonium » 18 jun 2010, 15:25

Koden generellt fungerar, men jag vet inte hur jag ska göra för att få fram det aktuella datum för resp Max/Min.
http://essunga.org
Moderator - Temperatur.nu

PerM
Hemautomation - det är mer än en hobby
Inlägg: 822
Blev medlem: 23 feb 2007, 14:46
Ort: Vallentuna
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av PerM » 18 jun 2010, 21:38

select from * `temperatur` where `temperatur` = Max( `temperatur` )

Den bör (inte testkört) ge alla tidpunkter där den maximala temperatuen uppnåtts. Sen får du välja vilken av dem som du vill ha, dvs filtrera på datum osv.

Användarvisningsbild
Plutonium
Moderator
Inlägg: 1237
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av Plutonium » 18 jun 2010, 22:19

Tack för svar. Så här blev resultatet.

Kod: Markera allt

$resultat = mysql_query("SELECT
           MIN(temperatur) AS Lowest,
           MAX(temperatur) AS Highest,
           AVG(temperatur) AS Average,
           (SELECT datum FROM temperatur WHERE var = 'Ute' AND DATE(datum) = DATE(NOW()) 
             ORDER BY temperatur LIMIT 1) AS Lowest_datum,
           (SELECT datum FROM temperatur WHERE var = 'Ute' AND DATE(datum) = DATE(NOW()) 
             ORDER BY temperatur DESC LIMIT 1) AS Highest_datum
           FROM
             temperatur
           WHERE
             var = 'Ute' AND DATE(datum) = DATE(NOW())"); 
http://essunga.org
Moderator - Temperatur.nu

Skriv svar