|
[WD23] Editeur de requêtes et fonction ABS() |
Iniciado por Dergen, dez., 10 2018 1:35 PM - 12 respostas |
| |
| | | |
|
| |
Membro registado 329 mensagems Popularité : +28 (32 votes) |
|
Publicado em dezembro, 10 2018 - 1:35 PM |
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 - |
| |
| |
| | | |
|
| | |
| |
Membro registado 352 mensagems Popularité : +12 (18 votes) |
|
Publicado em dezembro, 10 2018 - 2:05 PM |
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 |
| |
| |
| | | |
|
| | |
| |
Membro registado 329 mensagems Popularité : +28 (32 votes) |
|
Publicado em dezembro, 10 2018 - 9:07 PM |
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 -Mensagem modificada, dezembro, 10 2018 - 9:08 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 26 mensagems |
|
Publicado em dezembro, 11 2018 - 8:27 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Membro registado 28 mensagems Popularité : +1 (1 vote) |
|
Publicado em dezembro, 11 2018 - 8:41 AM |
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
-- (\ _ /) (='.'=) (")-(")Mensagem modificada, dezembro, 11 2018 - 8:43 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 28 mensagems Popularité : +1 (1 vote) |
|
Publicado em dezembro, 11 2018 - 8:46 AM |
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.
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membro registado 329 mensagems Popularité : +28 (32 votes) |
|
Publicado em dezembro, 11 2018 - 10:00 AM |
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 - |
| |
| |
| | | |
|
| | |
| |
Membro registado 2.572 mensagems Popularité : +222 (260 votes) |
|
Publicado em dezembro, 11 2018 - 11:09 AM |
@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-BERTINMensagem modificada, dezembro, 11 2018 - 11:12 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 28 mensagems Popularité : +1 (1 vote) |
|
Publicado em dezembro, 11 2018 - 11:55 AM |
@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
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membro registado 329 mensagems Popularité : +28 (32 votes) |
|
Publicado em dezembro, 11 2018 - 2:45 PM |
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 - |
| |
| |
| | | |
|
| | |
| |
Membro registado 28 mensagems Popularité : +1 (1 vote) |
|
Publicado em dezembro, 11 2018 - 3:26 PM |
@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
-- (\ _ /) (='.'=) (")-(") |
| |
| |
| | | |
|
| | |
| |
Membro registado 329 mensagems Popularité : +28 (32 votes) |
|
Publicado em dezembro, 11 2018 - 9:23 PM |
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 - |
| |
| |
| | | |
|
| | |
| |
Membro registado 2.572 mensagems Popularité : +222 (260 votes) |
|
Publicado em dezembro, 12 2018 - 9:36 AM |
@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 |
| |
| |
| | | |
|
| | | | |
| | |
|