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

Résolu
besoindaide -  
 besoindaide -
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
A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
peux-tu montrer une requête simple qui fonctionne?
peux-tu montrer la requête sans SUM?
1
besoindaide
 
SELECT
a,
lb,
Total



FROM [X ]

;
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > besoindaide
 
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 41499 Date d'inscription   Statut Modérateur Dernière intervention   9 709
 
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
besoindaide
 
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 41499 Date d'inscription   Statut Modérateur Dernière intervention   9 709 > besoindaide
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
besoindaide
 
ma colonne total existe deja. je lai calcule en amont

Merci
0
besoindaide
 
Merci encore une fois mais ca ne fonctionne toujours pas malgré la correction
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ç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 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > besoindaide
 
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 41499 Date d'inscription   Statut Modérateur Dernière intervention   9 709 > besoindaide
 
dans sql server la syntaxe c'est
where date is not null     
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
0

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

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