[SQL] créatiçon d'une vue avec un min

créatiçon d'une vue avec un min [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 01-10-2007 à 11:10:28    

Bonjour, j'ai un problème avec une VUE.
 
J'ai deux tables:
* grid (id,difficulty)
* record (id_grid,id_user,time,date)
 
j'aimerai créer une vue listant toutes les grilles "grid" avec les infos de "record" du joueur dont 'time' est le minimum pour chaque grille, donc chaque grille avec le record et le recordman.
 

Code :
  1. CREATE VIEW grid_record AS
  2. SELECT g.id, g.difficulty, r.id_user, r.time, r.date,
  3. MIN(r.time) AS record_time
  4. FROM grid AS g
  5. LEFT JOIN record AS r ON r.id_grid=g.id AND r.time=record_time
  6. GROUP BY g.id


 
Malheureusement, la condition " AND r.time=record_time" ne fonctionne pas, comment je peux faire?
 
Merci!


---------------
jouez gratuitement au hanjie, picross
Reply

Marsh Posté le 01-10-2007 à 11:10:28   

Reply

Marsh Posté le 01-10-2007 à 11:19:26    

bjr,
en remplacant record_time par min(r.time) non ?

Reply

Marsh Posté le 01-10-2007 à 11:36:22    

ca ne marche pas non plus:
 
#1111 - Invalid use of group function


---------------
jouez gratuitement au hanjie, picross
Reply

Marsh Posté le 01-10-2007 à 11:57:41    

group by g.id, g.difficulty, r.id_user, r.time, r.date

Reply

Marsh Posté le 01-10-2007 à 12:45:16    

même résultat :/


---------------
jouez gratuitement au hanjie, picross
Reply

Marsh Posté le 01-10-2007 à 13:43:26    

J'ai trouvé, je mets la réponse pour ceux qui en auront besoin
 

Code :
  1. CREATE VIEW vw_grid_record AS
  2. SELECT g.id, g.difficulty, r.id_user, r.time, r.date
  3. FROM grids AS g
  4. LEFT JOIN grid_records AS r ON r.id_grid=g.id AND r.time=(
  5. SELECT Min(time)
  6. FROM grid_records
  7. WHERE id_grid=g.id
  8. GROUP BY id_grid
  9. )


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed