Tre frågor:
- Varför har du GROUP BY med i SQL-frågan?
- Vad gäller det för dbms?
- Har du missat att det finns ett SQL-forum?
mvh
Databaser & SQLur Databashanterare & SQL
7 svar · 383 visningar · startad av clacke
Jag vill välja ut det senaste datumet från tabellen "faktura_datum". Med MAX på något vis? Eller?
Har följande kod, tacksam för hjälp!
sql4="SELECT faktura_id,faktura_status, anv_id, faktura_datum FROM faktura where anv_id = "& anvandare &" and faktura_status!='Betald' group by anv_id;"
set rs4=conn.execute(sql4)
Tre frågor:
mvh
1. därför jag hade testat med MAX(faktura_datum) och då måste det vara group by med.
2. mysql
3. ja :-)
Om jag kortar ner koden lite då!
sql4="SELECT faktura_datum FROM faktura where anv_id = "& anvandare &" and faktura_status!='Betald';"
set rs4=conn.execute(sql4)
Oki!
jag hade nog gjort så här:
sql4="SELECT faktura_id,faktura_status, anv_id, faktura_datum FROM faktura where anv_id = "& anvandare &" and faktura_status!='Betald' ORDER BY faktura_datum DESC LIMIT 1"
set rs4=conn.execute(sql4)
därför jag hade testat med MAX(faktura_datum) och då måste det vara group by med.
Det är fel på MySQL som tillåter det. Alla kolumner ska vara med i GROUP BY om man använder någon funktion som Max().
mvh
TACK! Det funkade, men vad stå LIMIT 1 för?
Om jag ville ha det äldsta datumet istället då?
Hur skulle det sett ut?
sql4="SELECT faktura_id,faktura_status, anv_id, faktura_datum FROM faktura where anv_id = "& anvandare &" and faktura_status!='Betald' ORDER BY faktura_datum LIMIT 1"
set rs4=conn.execute(sql4)
Limit begränsar antalet returnerade poster.
Flyttas från ASP.
LIMIT 1 begränsar resultatet till en post. Om du vill ha den äldsta posten så byter du bara sorteringsordning:
ORDER BY faktura_datum [b]ASC[/b] LIMIT 1"
(ASC kan du utelämna, då det är default sorteringsordning, men jag brukar ha med det för tydlighetens skull.)
mvh
Ok, man tackar!