Vous avez essayé d'executer une requete ne comprenant pas la fonction - SQL/NoSQL - Programmation
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
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...
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
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)...
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