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]