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

Langage SQL Discussion :

Sommer les chiffres de numéros de téléphone


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 79
    Points : 45
    Points
    45
    Par défaut Sommer les chiffres de numéros de téléphone
    * Bonjour, *

    J'ai le champ "Numéro de téléphone" dans une de mes tables, tous les numéro de téléphone on 7 chiffres.

    Je dois afficher la somme de tous les chiffres du numéro de téléphone

    Exemple : J'ai le numéro : 4569231

    Je dois afficher le résultat de : 4 + 5 + 6 + 9 + 2 + 3 + 1 = 30

    EDIT : Je viens de voir que si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT substring(numeroTel,1,1) + substring(numeroTel,2,1) ....
    Sa marcherais mais il va avoir 7 substring dans mon select il doit bien avoir un autre moyen de faire cela, un genre de FOR EACH ?

    * Merci *

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Quel est l'intérêt d'additionner les chiffres d'un numéro de téléphone ?

    Votre requête est suffisante et je ne suis aps sûr que l'équivalent d'un foreach arragerait les choses !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 780
    Points
    52 780
    Billets dans le blog
    5
    Par défaut
    Avec une table T_EMPLOYEE_EM doté d'une colonne EMP_TEL, voici la requête générique pour ce faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WITH 
    T0 AS (SELECT MAX(LEN(EMP_TEL))  AS LNG_MAX
           FROM  T_EMPLOYEE_EMP),
    T1 AS (SELECT 1 AS N
           UNION ALL
    	   SELECT N + 1
    	   FROM   T1
    	   WHERE  N < (SELECT LNG_MAX FROM T0)),
    T2 AS (SELECT EMP_TEL, CAST(SUBSTRING(EMP_TEL, N, 1) AS SMALLINT) AS CHIFFRE
           FROM   T_EMPLOYEE_EMP AS E
    	          CROSS JOIN T1)
    SELECT EMP_TEL, SUM(CHIFFRE)
    FROM   T2
    GROUP  BY EMP_TEL;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    il faut penser à récurivité.
    voici un exemple sous oracle


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    with test as 
     
    (select 1 id, '123'tel from dual union
     select 2 id, '456'tel from dual
     
    )
     
     
     
    select id ,sum(chiffre) from (
     
      SELECT distinct id,(substr(tel,level,1))chiffre
          FROM test
     
     
    CONNECT BY  level<=length(tel)
    )
    group by id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	ID	SUM(CHIFFRE)
    	1	6
    	2	15
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/01/2013, 18h12
  2. Les numéros de téléphones
    Par papemignane dans le forum Humour Informatique
    Réponses: 4
    Dernier message: 06/12/2012, 17h51
  3. Réponses: 22
    Dernier message: 13/11/2011, 19h05
  4. [OL-2003] [contact] Personnaliser les champs de : "numéros de téléphone"
    Par larreira dans le forum Outlook
    Réponses: 0
    Dernier message: 25/06/2009, 17h00
  5. Rajouter des espace dans les numéros de téléphones
    Par zooffy dans le forum Développement
    Réponses: 10
    Dernier message: 29/09/2008, 15h05

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