IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Informix Discussion :

Faire un sum dans une substring


Sujet :

Informix

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut Faire un sum dans une substring
    Bonjour,

    Je souhaiterais faire l'addition de valeurs recuperé dans une substring,

    voici ma requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select sum(substring(compte_rendu from 100 for 5)) from mois_de_juin
    where porteur between "049790%" and "0497939%"
    and code=01
    a savoir qu'a cette position du substring il y a le montant

    voici le messge d'erreur:

    9700: Routine (plus) ambiguous - more than one routine resolves to given sig

    Thx

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 776
    Points
    30 776
    Par défaut
    Essaye de décomposer les opérations et de sommer des nombres et non des chaînes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT SUM(tmp.nb)
    FROM    (   SELECT  CAST(SUBSTRING(compte_rendu FROM 100 FOR 5)) AS INTEGER) AS nb
                FROM    mois_de_juin
                WHERE   porteur BETWEEN '049790%' AND '0497939%'
                    AND code = 01
            )   AS tmp
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    j'ai lancé la requête et informix me sort l'erreur

    201: A syntax error has occurred.

    et le curseur clignotant se place sous CAST

    Thx

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    ta requete marche parfaitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select sum(tmp.nb) from
    (select cast(SUBSTRING(compte_rendu from 100 for 3) as integer) as nb
    from mois_de_juin where code = '01'
    and cod_rep = "00"
    and num_machine=2156) as tmp
    merci encore

  5. #5
    Membre habitué
    Homme Profil pro
    Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Inscrit en
    Octobre 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Achitecte Informix SGBD et applications - IBM Champion - Data Management - Board of Directors IIUG
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 105
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    belle requête effectivement, ça marche, mais au niveau performance je doute qu'elle tienne longtemps la marée...

    Ton montant serait certainement plus à l'aise tout seul dans une colonne de type money par exemple...

    Y a til beaucoup d'incongruités du genre dans ton schéma de base ?

    Cordialement

    Eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [HTML] faire des tabulation dans une liste <select>
    Par renofx1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/01/2006, 23h36
  2. [Xquery] faire un insert dans une base
    Par Batou dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 13/12/2005, 01h07
  3. Faire un test dans une procédure
    Par PrinceMaster77 dans le forum SQL
    Réponses: 1
    Dernier message: 23/11/2004, 09h55
  4. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo