mbini a écrit :

Bonjour
j'ai un souci avec une requête : SELECT "nom prenom beneficiare", SUM( "duree annulé ( minutes)" ), SUM( "duree modifie ( minutes)" ) FROM "Table1" AS "Table1". j'extrais de ma table une colone qui contient des chiffres (60, 30, 120, 45...) et je lui demande de faire la somme.
Il me génère une erreur.
Quelqu'un a une idée ?
Merci
Michel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Bonjour,

En premier lieu, est-ce que tu t'es assuré d'être bien en mode SQL Direct (parce que certaines instructions passent en SQL Direct mais ne passent pas en SQL "pas direct") ?

Sans être non plus un professionnel du SQL, je m'interroge sur la tête de ta requête ; as-tu volontairement simplifié ta rédaction pour le message ou as-tu recopié littéralement (en modifiant éventuellement les noms des tables ou des colonnes) ta requête ?

Est-ce que tu as véritablement une colonne qui s'appelle "nom prenom beneficiare" ? Ou est-ce que tu as, dans ta table une colonne "nom", une colonne "prenom" et une colonne "beneficiare" (d'ailleurs ce ne serait pas plutôt "beneficaire" le nom exact de ta colonne ?) ?

Dans la première hypothèse, tu pourrais essayer de voir si la transformation de "beneficiare" en "beneficiaire" ne serait pas bénéfique (sachant que ça ne devrait pas tout résoudre mais peut-être auras-tu une erreur différente ?).

Si, en revanche, c'est la deuxième hypothèse qui est valable, le début du Select devrait s'écrire ainsi : SELECT "nom", "prenom", "beneficiaire".

Ensuite, je suis étonné par le contenu de tes instructions SUM et je pense qu'il pourrait être judicieux que tu en dises plus sur la structure de ta table (nom exact des colonnes en particulier) ; mais même si tu dispose, dans ta table, de colonnes intitulées "duree annulé ( minutes)" et "duree modifie ( minutes)" (d'ailleurs, pourquoi un accent à "annulé" et pas à "modifie", n'est-ce pas une erreur ?) quelle somme veux-tu que ta requête effectue ? Ta requête n'a de sens que si la valeur de "nom prenom beneficiare" n'est pas unique (autrement dit, si tu as plusieurs enregsitrements pour un même bénéficiaire), donc plusieurs valeurs à totaliser pour un même "nom prenom beneficiare" ; il faut alors donner à ta requête une indication sur le nom de la colonne sur laquelle le regroupement va devoir s'opérer, ceci au moyen d'une clause "GROUP BY" ; ainsi si tu veux connaître, pour chaque bénéficiaire, le total de minutes modifiées et le toal de minutes annulées tu indiqueras en fin de requête : GROUP BY "nom prenom beneficiare" ; reste également que, pour donner un résultat, chaque colonne affectée d'un SUM doit être dotée d'un alias, au moyen de la clause AS ; ainsi cette partie de ta requête devrait s'écrire : SUM( "duree annulé ( minutes)" ) AS "duree annulé" , SUM( "duree modifie ( minutes)" ) AS "duree modifie"

Enfin, je m'interroge sur cette instruction : FROM "Table1" AS "Table1" ; je pense déjà qu'à elle seule, cette partie de ta requête te génère une erreur ; qui plus est, je ne vois pas quel est le but poursuivi par ce [AS "Table 1"] qui revient à donner pour Alias à une table, son propre nom... ; c'est comme si tu disais "Permettez-moi de vous présenter Jean-Paul DUPONT plus connu sous le nom de Jean-Paul DUPONT" ; alors une explication sur ce point pourrait être intéressante.

Donc là, sous réserve qu'il n'y ait pas de fautes de frappes dans ta requête et que tes noms de colonnes soient exactement ceux mentionnés dans ton message, je proposerais la rédaction suivante : SELECT "nom prenom beneficiare", SUM( "duree annulé ( minutes)" ) AS "duree 1", SUM( "duree modifie ( minutes)" ) AS "duree 2" FROM "Table1" GROUP BY "nom prenom beneficiare";

Espérant avoir aidé,

A+

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à