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

Résolu
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

  1. Contributeur Ambassadeur
    bonjour,
    peux-tu montrer une requête simple qui fonctionne?
    peux-tu montrer la requête sans SUM?
    1
    1. SELECT
      a,
      lb,
      Total

      FROM [X ]

      ;
      0
    2. Contributeur Ambassadeur
      @besoindaidepeux-tu montrer la requête sans SUM?

      as-tu essayé
      SELECT
      a,
      lb,
      Total,
      lb / Total as R
      
      FROM [X ]
      0
  2. Modérateur
    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
    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
    2. Modérateur
      @besoindaidegé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
  3. Modérateur
    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
    1. ma colonne total existe deja. je lai calcule en amont

      Merci
      0
  4. Merci encore une fois mais ca ne fonctionne toujours pas malgré la correction
    0
    1. Modérateur
      Ç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
    2. @jordane45effectivement 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
    3. Modérateur
      @besoindaideEn 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
    4. Modérateur
      @besoindaidedans sql server la syntaxe c'est
      where date is not null     
      0
  5. Jordane45
    Jai supprime ma colonne Total et utilise ta méthode cela fonctionne a présent. Merci beaucoup
    0