Toon posts:

[MySQL] query werkt wel op versie 4.0.21 en niet op 4.0.12

Pagina: 1
Acties:

Verwijderd

Topicstarter
De volgende query werkt wel op MySQL versie 4.0.21 maar niet op 4.0.12:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
  m.MedewerkerID,
  m.Naam,
  DATE_FORMAT(min(datum),'%d-%m-%Y') as mindatum,
  DATE_FORMAT(max(datum),'%d-%m-%Y') as maxdatum,
  sum(bst.Prijs) as totaal
FROM
  medewerkers m,
  broodjes b,
  bestellingen bst
WHERE bst.broodjeID = b.broodjeID
AND bst.MedewerkerID = m.MedewerkerID
AND bst.Betaald = 0
AND bst.Datum <= CURDATE()
GROUP BY MedewerkerID
ORDER BY MedewerkerID


De foutmelding die ik te zien krijg is: 'm.Naam' isn't in GROUP BY'Als ik deze dan inderdaad toevoeg aan de GROUP BY dan komt de melding: 'mindatum' isn't in GROUP BY en als ik die dan voor 'de grap' ook nog toevoeg dan komt de melding: Can't group on 'mindatum'

Iemand enig idee waarom? (de query werkt (zoals hij hier boven staat) dus prima op 4.0.21)

[ Voor 7% gewijzigd door Verwijderd op 27-10-2004 13:46 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:25

Creepy

Tactical Espionage Splatterer

Je bent in ("standaard") SQL verplicht om alle niet aggregated fields uit je select op te nemen in je group by. Bij MySQL hoeft dit niet (dit noemen ze zelf een feature, andere mensen zijn het daar niet helemaal mee eens ;) ).
Gewoon de andere velden in je group by opnemen. Dan is er niks aan de hand en werkt je query ook op een eventueel andere database systeem.

[ Voor 4% gewijzigd door Creepy op 27-10-2004 13:48 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Creepy schreef op 27 oktober 2004 @ 13:48:
Je bent in ("standaard") SQL verplicht om alle niet aggregated fields uit je select op te nemen in je group by. Bij MySQL hoeft dit niet (dit noemen ze zelf een feature, andere mensen zijn het daar niet helemaal mee eens ;) ).
Gewoon de andere velden in je group by opnemen. Dan is er niks aan de hand en werkt je query ook op een eventueel andere database systeem.
Ja maar als ik ze dus toevoeg dan komt het niet goed bij het veld 'mindatum' zoals ik schreef. Hoe zit dat dan?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:25

Creepy

Tactical Espionage Splatterer

Raar. Die aggregated fields moet je inderdaad niet opnemen nee. Waarom MySQL roept dat mindatum in de group by moet staan is me een raadsel. Dat lijkt op een bug die opgelost is in die 4.0.21

[ Voor 10% gewijzigd door Creepy op 27-10-2004 14:04 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Creepy schreef op 27 oktober 2004 @ 14:03:
Raar. Die aggregated fields moet je inderdaad niet opnemen nee. Waarom MySQL roept dat mindatum in de group by moet staan is me een raadsel. Dat lijkt op een bug die opgelost is in die 4.0.21
Ik vind het ook een heel wazig iets ja. Maar ik snap niet dat dit probleem hier dan niet op onze versie 4.0.12 server voorkomt met de applicaties die er op draaien. Qua opbouw is dit toch een hele simpele "SELECT....WHERE....GROUP BY" query. Die komen zat voor in de applicaties die er gebruik maken van de database op de versie 4.0.12 server.

maar ja.... binnenkort upgraden dan maar.

thx!