Jag får inte till min SQL-fråga. Alltid i små steg. Vilken databas? Hej, Sorry my bad.Får inte till min SQL
SELECT MAX(stallning) max, MIN(stallning) min, matar_id FROM matarstallning WHERE matar_id=4 GROUP BY datum HAVING datum BETWEEN 2008-11-10 AND 2009-07-21
Dataset:
matar_id datum stallning
4 2008-07-10 3866
4 2008-11-10 4528
4 2009-07-21 5800
Jag får inga rader alls i retur. Har jag använt något fel? Om jag vänder på den enl. nedan istället så görs inget urval på datumen, då får jag alltid min och max utan urval på datum.
SELECT MAX(stallning) max, MIN(stallning) min, matar_id FROM matarstallning WHERE datum > 2008-11-10 GROUP BY matar_id HAVING matar_id=4Sv: Får inte till min SQL
Visar alla följande det du förväntar dig?
SELECT datum, stallning, matar_id FROM matarstallning
SELECT datum, stallning, matar_id FROM matarstallning WHERE matar_id=4
SELECT MAX(stallning) MX, matar_id FROM matarstallning WHERE matar_id=4 GROUP BY Datum
SELECT MAX(stallning) MX, MIN(stallning) MN, matar_id FROM matarstallning WHERE matar_id=4 GROUP BY DatumSv: Får inte till min SQL
I SQL Server skulle det se ut såhär:
<code>
SELECT MAX(stallning) AS [max], MIN(stallning) AS [min], matar_id
FROM matarstallning
WHERE (matar_id = 4) AND (datum BETWEEN '2008-11-10' AND '2009-07-21')
GROUP BY datum, matar_id;
</code>Sv:Får inte till min SQL
tack för ditt svar. Det verkar som att den nu väljer ut bara det lägre värdet både på min och max, grupperar fel?
MattiasSv: Får inte till min SQL
Datum hade slunkit in på GROUP BY.
Kör det här istället;
<code>
SELECT MAX(stallning) AS [max], MIN(stallning) AS [min], matar_id
FROM matarstallning
WHERE (matar_id = 4) AND (datum BETWEEN '2008-11-10' AND '2009-07-21')
GROUP BY matar_id;
</code>