Problème avec une requete GROUP BY - SQL/NoSQL - Programmation
Marsh Posté le 14-04-2011 à 00:00:42
Tres bien, et comment veut tu aggreger les autres champs, parce que si tu veux les afficher, il va falloir savoir comment.
Marsh Posté le 14-04-2011 à 00:03:25
je veux les afficher oui mes en fonction de le champ Des car si j'ajoute a Group By Des les autre champs ce n'est pas ce que je veux comme résultat
Marsh Posté le 14-04-2011 à 00:35:35
c'est a dire ? donne un peu plus de details, mais tu es oblige dans ce cas d'utiliser une fonction d'aggregation ...
Marsh Posté le 14-04-2011 à 00:42:21
ok alors j'ai une table commande d'où je veux créer une vue afin d'avoir toutes les opérations effectuées dans un jour j.
alors ce que je veux créer c'est une requête qui contient :
- Nombre d'article vendu.
- Désignation
- Prix unitaire
- Total
- Date
cette requête est la suivante :
* SELECT SUM(Qte) AS Qté, Des, Pu, SUM(Somme) AS Somme, Date_Entre
From Commande
Group By Des,Pu,Qte,Date_Entre
ici la requête me retourne un resultat qui est groupé par cet ensemble de champs, moi je veux un group by que par le champ Des
Marsh Posté le 14-04-2011 à 10:33:48
michimichid a écrit : ok alors j'ai une table commande d'où je veux créer une vue afin d'avoir toutes les opérations effectuées dans un jour j. |
Et comment tu veux qu'il choisisse ce qu'il doit y mettre dans les autres champs non-agrégés, ton sgbd, si tu lui dis pas?
Marsh Posté le 14-04-2011 à 10:48:28
comme dit juste avant tu te poses pas la bonne question.
tu groupes par DES, ce qui doit etre la description mais tu veux afficher des PU qui seront probablement différents dans une meme ligne.
deja DES si ce n'est pas une PK c'est super bancale comme approche et ca explique pourquoi ta requete est pas top, si c'etait une PK (article_id par exemple) le group by avec tous les champs te rendrait le resultat attendu.
Si ce n'est pas le cas le PU peut etre différent donc tu devrais sortir le AVG(PU) et/ou l'ecart type (MIN(PU),MAX(PU))
Marsh Posté le 13-04-2011 à 23:58:25
Bonjour,
j'ai un problème dans ma req Sql, ma requête est la suivante :
FROM dbo.Commande
WHERE (Type = 'Client')
Group By Des
le problème lors ce que j'exécute cette requête il m'affiche le problème suivant :
La colonne Pu n'est pas valide dans la liste de sélection car elle n'est pas contenu dans une fonction d'agrégation ou dans group by
j'ai intégré tout les champs après le GROUP BY mais le résultat n'est pas ce que je veux avoir car je veux un Group By que par le champ Des
Merci