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 9462 Date d'inscription   Statut Modérateur Dernière intervention   10 014
     
    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 9462 Date d'inscription   Statut Modérateur Dernière intervention   10 014 > 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 833
     
    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 833
       
      Ç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 833 > 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 9462 Date d'inscription   Statut Modérateur Dernière intervention   10 014 > 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