Vous avez essayé d'executer une requete ne comprenant pas la fonction

Vous avez essayé d'executer une requete ne comprenant pas la fonction - SQL/NoSQL - Programmation

Marsh Posté le 10-09-2013 à 14:39:51    

SELECT  Ville_dépôt, SUM (Nombre_maxi_stockés) AS Capacité_Stockage_Totale
FROM DEPOT, STOCKAGE
WHERE DEPOT.N°_dépôt = STOCKAGE.N°_dépôt
AND Ville_dépôt = "BORDEAUX"
 
J'ai tapé cela en SQL mais j'ai un probleme quand j'execute, il ne veut pas m'afficher ma ville dépot à cote de mon total.  
 
Des idées ?  
 
Merci  
 
 
 

Reply

Marsh Posté le 10-09-2013 à 14:39:51   

Reply

Marsh Posté le 10-09-2013 à 15:03:27    

SELECT Ville_dépôt, SUM (Nombre_maxi_stockés) AS Capacité_Stockage_Totale
FROM DEPOT, STOCKAGE
WHERE DEPOT.N°_dépôt = STOCKAGE.N°_dépôt
GROUP BY Ville_dépôt
HAVING Ville_dépôt = "BORDEAUX"
 
Voila trouvé, j'ai vraiment un prof de merde


---------------
Si tu as de la chance pourquoi jouer ? Mais si tu n'as pas de chance pourquoi jouer ?
Reply

Marsh Posté le 10-09-2013 à 16:45:48    

Ben faut avouer que mettre des champs d'une table avec des accents ou des caractères genre °, c'est vraiment aller chercher les galères :/
 
Effectivement, manquait le GROUP BY, obligatoire dès qu'on utilise une fonction d'agrégation...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-09-2013 à 16:44:52    

SELECT   "BORDEAUX" , SUM (Nombre_maxi_stockés) AS Capacité_Stockage_Totale  
FROM DEPOT, STOCKAGE  
WHERE DEPOT.N°_dépôt = STOCKAGE.N°_dépôt  
HAVING Ville_dépôt = "BORDEAUX"  
 
ou plus simplement et lisiblement (voir plus rapide aussi ...)
 
SELECT "BORDEAUX", SUM (Nombre_maxi_stockés) AS Capacité_Stockage_Totale  
FROM DEPOT  
inner join  STOCKAGE  
on DEPOT.N°_dépôt = STOCKAGE.N°_dépôt  
Where Ville_dépôt = "BORDEAUX"  
 
Tu peux aussi faire comme ça...  vu que tu ne sélectionne que BORDEAUX :)  
 
NB.: Si tu ne sélectionnes pas qu'une ville , il faut ajouter le group by...
 
select f1, f2, sum(f3), max(f4), min(f4) ... from ma_table
where conditions
group by f1, f2...
(+ order by f1, f2 si tu veux aussi)
 
Pour le having, bof : pourquoi tu me mets pas directement  
dans ta clause where :  .... and ville_dépôt ="BORDEAUX" ?
A mon avis cela sera déjà plus rapide...
Mais comme dit Rufo... un jour ou l'autre vous allez avoir des surprises avec des caractères spéciaux dans vos tables et zones...
 
Guillaume


Message édité par gpl73 le 25-09-2013 à 16:46:21
Reply

Marsh Posté le 25-09-2013 à 17:15:03    

+1 pour le "BORDEAUX" dans le Where et non dans le having. C'est mieux pour la lisibilité et probablement pour les perfs (moins de résultats à traiter si les enregistrements sont élagués dans le where plutôt que dans le having)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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