Mysql Select MIN/MAX

Generella mjukvarufrågor som inte är beroende av vilket operativsystem som körs skall ställas i denna kategori
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1245
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Mysql Select MIN/MAX

Inlägg 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";


		}
http://essunga.org
Moderator - Temperatur.nu
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg av elf98 »

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

Driver temperatur.nu

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

Re: Mysql Select MIN/MAX

Inlägg av elf98 »

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

Driver temperatur.nu

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

Re: Mysql Select MIN/MAX

Inlägg 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.
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 »

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: 1245
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Mysql Select MIN/MAX

Inlägg 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())"); 
http://essunga.org
Moderator - Temperatur.nu
Skriv svar