Bloqué sur le calcul du ratio de ma requête SQL

Résolu/Fermé
besoindaide - 28 avril 2022 à 18:18
 besoindaide - 28 avril 2022 à 20:34
Bonjour,

Svp Jai besoin d'aide
Comment calculer ce ratio ( lb / Total ) sur SQL dans un SELECT dans ce exemple ?

a lb Total Ratio
6 2 8 0,25
3 1 4 0,25
1 2 3 0,666666667

Voila ce que Jai essaye sans succès :

SELECT
a,
lb,
Total,

SUM (lb ) / (SELECT SUM (Total ) as R

FROM [X ]

;

Avec ou sans crochet sur le nom de la table j ai ce message d'erreur :

SQL Error [102] [S0001]: Incorrect syntax near ';'. Pourtant le nom de la table est correct.


Jai aussi essaye la syntaxe sans SUM mais le même message d'erreur apparait.
Merci de m'aider

5 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
28 avril 2022 à 18:32
bonjour,
peux-tu montrer une requête simple qui fonctionne?
peux-tu montrer la requête sans SUM?
1
SELECT
a,
lb,
Total



FROM [X ]

;
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > besoindaide
28 avril 2022 à 19:24
peux-tu montrer la requête sans SUM?

as-tu essayé
SELECT
a,
lb,
Total,
lb / Total as R

FROM [X ]
0
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238
28 avril 2022 à 18:33
Bonjour,

Tu n'as pas expliqué grand chose sur les données et les composants.

Avec un SUM() tu devrais avoir un GROUP BY. Pourquoi pas :

select a, sum(lb), sum(total), sum(lb)/sum(total) from table
group by a

1
Merci mais deja essayé


SELECT
a,
lb,

sum(lb), sum(total), sum(lb)/sum(total) as R

FROM [X ]

group by a
where date not null

;

Malheureusement ca ne fonctionne pas et jai ce message derreur :

SQL Error [156] [S0001]: Incorrect syntax near the keyword 'where'.
0
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238 > besoindaide
Modifié le 28 avril 2022 à 19:01
généralement le WHERE précède le GROUP BY

et avec le GROUP BY A on ne peut pas avoir lb mais SUM(lb)
1
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 avril 2022 à 19:26
Bonjour

Ta colonne total existe déjà dans ta table ou tu dois la calculer via a+lb ?

Je pense que ce que tu cherches est un truc du genre
SELECT
      a,
      lb,
      a+lb as Total,
      lb/(a+lb) as ratio
FROM [X ]

1
ma colonne total existe deja. je lai calcule en amont

Merci
0
Merci encore une fois mais ca ne fonctionne toujours pas malgré la correction
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
28 avril 2022 à 19:56
Ça ne marche pas.... C'est-à-dire ???
Il serait bien de répondre à nos questions et de nous indiquer en détail en quoi cela ne fonctionne pas.
Tu as un message d'erreur ?
Où le résultat obtenu ne te semble pas correct ? Et dans ce cas.. qu'as-tu obtenu et en quoi cela n'est-il pas bon ?
As-tu bien réécris la requête telle que je te l'ai donné où y as tu ajoute des éléments ?
0
besoindaide > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
28 avril 2022 à 20:04
effectivement jai un message derreur :

SQL Error [156] [S0001]: Incorrect syntax near the keyword 'null'.


SELECT
a,
Sum (lb),

sum(lb), sum(total), sum(lb)/sum(total) as R

FROM [X ]
where date not null
Group by a

;
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > besoindaide
28 avril 2022 à 20:07
En même temps, ce n'est pas du tout celle que je t'ai donné
Ensuite regarde la documentation de SQL server concernant la comparaison avec la valeur NULL
0
jee pee Messages postés 39650 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 avril 2024 9 238 > besoindaide
28 avril 2022 à 20:10
dans sql server la syntaxe c'est
where date is not null     
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
28 avril 2022 à 20:13
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jordane45
Jai supprime ma colonne Total et utilise ta méthode cela fonctionne a présent. Merci beaucoup
0