Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
788 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT MIN(date) marche pas !!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT MIN(date) marche pas !!!!

n°930064
naeh
Posté le 22-12-2004 à 14:49:31  profilanswer
 

Salut a tous :)
bon comme d'hab je me refuge ici quand je bloque et là je commence a fumer de la tete  :sleep:  
 
donc voila en gros j'ai une requete que mysql n'aime ps trop la voila :  

Code :
  1. SELECT id, MIN(dateAchat), prixAchat, qtte_rest FROM stock_e WHERE refProd = 'DD001TEST' AND qtte_rest > 0


 
donc voila j'ai regardé un peu du coté de la doc mais rien de concluant :(
il me dit que mon MIN sur la date n'est pas bon, pourtant il me semble que c'est ce que je faisais en cours et les profs aimaient toujours :)
 
donc voila merci d'avance.

mood
Publicité
Posté le 22-12-2004 à 14:49:31  profilanswer
 

n°930072
sircam
I Like Trains
Posté le 22-12-2004 à 14:56:49  profilanswer
 

Message d'erreur stp.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°930080
naeh
Posté le 22-12-2004 à 15:06:30  profilanswer
 

Code :
  1. ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...)
  2. with no GROUP columns is illegal if there is no GROUP BY clause


 
:)

n°930081
naeh
Posté le 22-12-2004 à 15:07:13  profilanswer
 

serait-il obligatoire de mettre un GROUP BY apres un MAX, MIN, COUNT etc. ???

n°930085
sircam
I Like Trains
Posté le 22-12-2004 à 15:13:17  profilanswer
 

Beh oui... Ici tu mixes id, prixAchat avec un MIN. Ce n'est pas permis par SQL.
 
Ce que tu veux, c'est un MIN dans une clause WHERE en l'occurence, avec les champs id, prixAchat et dateAchat dans le SELECT.
 

Citation :

il me semble que c'est ce que je faisais en cours et les profs aimaient toujours

D'où tu sors, toi ;)


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°930369
naeh
Posté le 22-12-2004 à 20:40:54  profilanswer
 

oki oki merci beaucoup pour les reponses :)
 
j'ai ajouté un GROUP BY et ca marche nickel :)
 
merci encore :)

n°930378
sircam
I Like Trains
Posté le 22-12-2004 à 20:48:15  profilanswer
 

Naeh a écrit :

j'ai ajouté un GROUP BY et ca marche nickel :)


 :heink:  
J'y crois pas trop là... J'peux voir ?  :??:  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°930515
naeh
Posté le 22-12-2004 à 21:55:21  profilanswer
 

voila :)

Code :
  1. SELECT id, MIN(dateAchat), prixAchat, qtte_rest  FROM stock_e WHERE refProd = '$ref' AND qtte_rest > 0 GROUP BY refProd


 
la c sur ca marche puisque j'ai testé ;-)

n°930526
sircam
I Like Trains
Posté le 22-12-2004 à 22:17:18  profilanswer
 

Bien joué  :jap:  
 
En général, ce genre de clause n'est pas très maintenable, car la moindre modif sur la clause SELECT (ou, en l'occurence, sur la clause WHERE) demande d'adpater de même le GROUP BY.
 
Mais je dois dire qu'en l'espèce, c'est élégant.
 
Imagine que tu ne dispose plus de la clause WHERE, car le filtre n'est plus utilisé. Que se passe-t-il [:autobot]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°930555
naeh
Posté le 22-12-2004 à 22:52:53  profilanswer
 

bon  
apres quelques tests plus poussés il s'est averé que la requette n'est pas bonne en fait :s
 
bon les compta'men auront compris que c'est pour gerer les methodes LIFO et FIFO.
le probleme c'est que quand je prends la date max par exemple, il ne prends pas la ligne ou la date est la maximale, mais il prends la date max te pour le reste il prends les premier qu'il trouve dans la table
exemple :
si j'ai 2 lignes dans ma table avec la meme refProd :
ligne 1 : id 2 date 20/12/04 rest 10
ligne 2 : id 4 date 22/12/04 rest 6
 
donc dans ce cas la meme requete qu'en haut avec un max retourne :
id 2 date 22/12/04 rest 10
 
donc il prends bien la date max mais pas toute la ligne, et la franchement je bloque grave !
 
merci.

mood
Publicité
Posté le 22-12-2004 à 22:52:53  profilanswer
 

n°930573
naeh
Posté le 22-12-2004 à 23:08:24  profilanswer
 

en fait ce qu'il faut lui dire en gros c'est : where date est la max/min
 
est-ce possible en SQL et comment le dire ?

n°930575
glod 2
Votre trajet, notre projet.
Posté le 22-12-2004 à 23:13:11  profilanswer
 

Ben vi, tu select le (min)date alors que c'est pas ça que tu veux select.
Tu veux select une ligne WHERE min(date).
(ma syntaxe est pas bonne là, mais tu comprends l'idée je pense)

n°930576
glod 2
Votre trajet, notre projet.
Posté le 22-12-2004 à 23:13:50  profilanswer
 

merde grillaid :)
donc
WHERE DATE IN(SELECT MIN(date) FROM table)

n°930577
glod 2
Votre trajet, notre projet.
Posté le 22-12-2004 à 23:14:54  profilanswer
 

ou plutôt WHERE date = (SELECT MIN(date)) je sais plus...

n°930590
naeh
Posté le 22-12-2004 à 23:32:12  profilanswer
 

je croyais que mysql ne gerait pas les requetes imbriquées, si ca marche c sur que c'est vachement plus simple :)

n°930597
naeh
Posté le 22-12-2004 à 23:40:23  profilanswer
 

appremment ca passe pas avec un requete imbriquée :(

n°930606
naeh
Posté le 22-12-2004 à 23:58:40  profilanswer
 

normal que ca passe pas je suis sur un mysql 4.0.23 et les requetes imbriquées sont acceptées depuis la version 4.1  
 
dommage :'(

n°930687
sircam
I Like Trains
Posté le 23-12-2004 à 09:15:35  profilanswer
 

Citation :

Ce que tu veux, c'est un MIN dans une clause WHERE en l'occurence, avec les champs id, prixAchat et dateAchat dans le SELECT.


 :o C'est gentil de paraphraser, mais faut lire, aussi.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°931116
glod 2
Votre trajet, notre projet.
Posté le 23-12-2004 à 18:36:50  profilanswer
 

Naeh a écrit :

je croyais que mysql ne gerait pas les requetes imbriquées, si ca marche c sur que c'est vachement plus simple :)


ah désolé j'avais pas vu le mysql.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SELECT MIN(date) marche pas !!!!

 

Sujets relatifs
repaint qui marche pascss, display: none; ça marche bien mais ...
[CSS] modifier la couleur de la scrollbar d'un selectDate dans les fichiers xml/rss
probleme avec type date et heureSélectionner/désélectionner TOUS les <option> d'un <select> [Résolu]
afficher masquer un select[résolu] installation SDK netbeans... qui marche pas
Pkoi ça marche po ?problem avec public : ça marche pas
Plus de sujets relatifs à : SELECT MIN(date) marche pas !!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR