| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 10 décembre 2018 - 13:35 |
Bonjour,
Dans l'éditeur de requête, on trouve dans les possibilitées la fonction SUM() mais si on a besoin de faire un ABS(SUM())
Peux-on le faire dans l'éditeur de requêtes et si oui, comment ?
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 352 messages Popularité : +12 (18 votes) |
|
Posté le 10 décembre 2018 - 14:05 |
Bonjour, pour faire un SUM(), il faut faire un GROUP BY Vous pouvez lire cet article pour mieux se familiariser avec ; https://sql.sh/cours/group-by |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 10 décembre 2018 - 21:07 |
J’ai pas de PB avec la fonction SUM mais c’est arriver à faire un ABS() qui je ne trouve pas dans l’éditeur de requêtes !
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau -Message modifié, 10 décembre 2018 - 21:08 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 26 messages |
|
Posté le 11 décembre 2018 - 08:27 |
Bonjour, Il est possible d'utiliser la fonction SQL ABS dans une requête (en tout cas c'est ce que dit la documentation )
sinon il est toujours possible d'utiliser les commande wlangage en les préfixant avec "wd.", c'est une astuce qui permet même de créer ses propres "fonction" SQL et ça c'est cool
Bonne journée.
Amicalement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 28 messages Popularité : +1 (1 vote) |
|
Posté le 11 décembre 2018 - 08:41 |
Bonjour Dergen,
En fait il faut faire la fonction ABS avant le SUM :
SELECT Commande.IDCOMMANDE AS IDCOMMANDE, SUM(ABS( Commande.Quantité ) ) AS la_somme_Quantité FROM Commande GROUP BY Commande.IDCOMMANDE
J'ai édité la requête manuellement et fait une rétro analyse
-- (\ _ /) (='.'=) (")-(")Message modifié, 11 décembre 2018 - 08:43 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 28 messages Popularité : +1 (1 vote) |
|
Posté le 11 décembre 2018 - 08:46 |
Sinon tu crée une nouvelle requête, tu prend l'ID (par exemple) de ton fichier. Ensuite tu va sur rubrique calculer, tu fais ABS(Fichier.Quantité), tu valide et ensuite tu fais la somme sur la formule.
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 11 décembre 2018 - 10:00 |
Geoffrey ZIMMERMANN a écrit :
Sinon tu crée une nouvelle requête, tu prend l'ID (par exemple) de ton fichier. Ensuite tu va sur rubrique calculer, tu fais ABS(Fichier.Quantité), tu valide et ensuite tu fais la somme sur la formule.
-- (\ _ /) (='.'=) (")-(")
Merci, c'est exactement ce que je cherchait
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 572 messages Popularité : +222 (260 votes) |
|
Posté le 11 décembre 2018 - 11:09 |
@Dergen: Ce que tu cherches à faire n'est pas possible en HFSQL. Il te faut faire une sum de tes valeurs et ensuite par code faire la valeur absolue du résultat. C'est une des limites de HFSQL.
Erreur :Les fonctions agrégats (COUNT, AVG, SUM, MIN, MAX) ne sont pas autorisées en dehors des clauses SELECT ou HAVING
@Geoffrey ZIMMERMANN: ce que tu lui dis de faire est faux. Faire la somme des valeurs absolues n'est pas la même chose que faire la valeur absolue de la somme. Il va donc se retrouver avec des données erronées.
Soit les données: 1 2 -8 6 14 -9
La somme des valeurs absolues donne : 40 La valeur absolue de la somme donne : 6
Donc 2 valeurs absolument différentes.
-- Cordialement,
Philippe SAINT-BERTINMessage modifié, 11 décembre 2018 - 11:12 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 28 messages Popularité : +1 (1 vote) |
|
Posté le 11 décembre 2018 - 11:55 |
@Philippe SB et @Dergen, autant pour moi. C'était une méthode que j'utilisais, mais j'avais besoin dans mon cas que toute les valeurs soient d'abord positive avant d'en faire la somme.
Dans ce cas, peut-être une fonction SQL peu faire l'affaire
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 11 décembre 2018 - 14:45 |
Je ne suis pas en HFSQL mais en Oracle.
Et sur cette requête bien spécifique, toute les valeurs sont en négatif.
Je vient de comparer la requête proposé par Geoffrey SUM(ABS()) dans l'éditeur de requêtes avec comme résultat:
Client Pals Colis UVCs ---------- ---------- ---------- ---------- 39 5 180 180 77 33 516 322776 81 22 169 169 88 34 34 34
Et une requête SQL directe dans Oracle ABS(SUM()) avec comme résultat :
CLIENT PALETTES COLIS UVC ---------- ---------- ---------- ---------- 39 5 180 180 77 33 516 322776 81 22 169 169 88 34 34 34
Pour moi le résultat des 2 méthodes donne un résultat identique...
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 28 messages Popularité : +1 (1 vote) |
|
Posté le 11 décembre 2018 - 15:26 |
@Dergen,
Oui pas de soucis dans ce cas, mais si tu as des valeurs négatives à additionner, alors ça devient faux. Si jamais tu as :
39 + -5 = 34 ET PAS 39 + 5 = 44
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 11 décembre 2018 - 21:23 |
Dans mon cas (bien particulier) toute mes valeurs sont négative, logique vu qu’il s’agit de sortie de stock.
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 572 messages Popularité : +222 (260 votes) |
|
Posté le 12 décembre 2018 - 09:36 |
@Dergen: Attention le négatif pour une sortie est une vue de l'esprit. Nombreux sont les fichiers de mouvements de stock ou toutes les valeurs sont positives et la ligne typée , exemple: 'E' pour entrée et 'S' pour sortie.
J'ai même vu des fichiers ou il y a une colonne entrée et une colonne sortie et ou dans la colonne sortie la valeur peut-être positive ou négative selon si le client a fait un retour de marchandise. Aberrant certes, mais ça existe., d'où toujours préférer de faire les opérations dans le bon sens pour éviter les problèmes par la suite.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | |