Sida 1 av 1

Mysql Select MIN/MAX

Postat: 18 jun 2010, 00:33
av Plutonium
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";


		}

Re: Mysql Select MIN/MAX

Postat: 18 jun 2010, 06:50
av elf98
Det ser ut att vara en extra högerparantes efter NOW

Re: Mysql Select MIN/MAX

Postat: 18 jun 2010, 12:40
av elf98
Efter en närmare titt inser jag att jag såg fel!

Re: Mysql Select MIN/MAX

Postat: 18 jun 2010, 15:25
av Plutonium
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.

Re: Mysql Select MIN/MAX

Postat: 18 jun 2010, 21:38
av PerM
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.

Re: Mysql Select MIN/MAX

Postat: 18 jun 2010, 22:19
av Plutonium
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())");