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

5 réponses

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



      FROM [X ]

      ;
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > besoindaide
         
        peux-tu montrer la requête sans SUM?

        as-tu essayé
        SELECT
        a,
        lb,
        Total,
        lb / Total as R
        
        FROM [X ]
        0
  2. jee pee Messages postés 9441 Date d'inscription   Statut Modérateur Dernière intervention   9 981
     
    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. 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
      1. jee pee Messages postés 9441 Date d'inscription   Statut Modérateur Dernière intervention   9 981 > 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
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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. besoindaide
       
      ma colonne total existe deja. je lai calcule en amont

      Merci
      0
  4. besoindaide
     
    Merci encore une fois mais ca ne fonctionne toujours pas malgré la correction
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Ç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. besoindaide > jordane45 Messages postés 30427 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
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > 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
    4. jee pee Messages postés 9441 Date d'inscription   Statut Modérateur Dernière intervention   9 981 > besoindaide
       
      dans sql server la syntaxe c'est
      where date is not null     
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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