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 :

Ajouter le contenue d'un champs dans un autre


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut Ajouter le contenue d'un champs dans un autre
    Bonjour,

    J'ai une table avec agent. Dans cette table j'ai les champs NOMet PRENOM. J'utilise ces derniers dans un état Qreport. Je rencontre un problème d'espace dans mon état. Après reflexion, je veux supprimer le champ prenom pour avoir de l'espace.
    Pour ne pas perdre le contenue du champ PRENOM, je veux ajouter le contenu du champ PRENOM dans le champ NOM sans écraser les noms qui y sont déjà.
    Par exemple NOM : KABORE
    PRENOM : ALI
    Je veux ajouter Ali à la suite de KABORE en laissant un espace entre les deux. Je veux que cela donne KABORE ALI dans la champ NOM.
    Est-ce qu'il y'a un moyen de le faire?. Si oui comment?.
    Je précise que dans la table agent il y'a 123 lignes. J'utilise ORACLE 10g comme base de donnée.
    Merci pour toutes aides.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select nom || ' ' || prenom as nom...
    ERE

  3. #3
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut ERE,

    J'ai aussi pensée à la concaténation. Mais ce n'est pas seulement faire un select mais mettre a jour un champ avec une valeur d'une autre chamop de la même table sans écraser le contenue.
    Je pense que vous m'avez un peu compris.
    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Tu peux modifier ta colonne nom pour y concaténer le prenom. Mais dans ce cas tu es bien conscient que tu vas perdre le nom seul ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATEagent
    SET nom = nom || ' ' || prenom;
    Et fais attention à ce que la taille de ta colonne nom soit assez grande pour accueillir le prénom en entier

    Si ce n'est pas le cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE agent MODIFY (nom   VARCHAR2(100))
    ... si j'ai bien compris ce que tu veux faire !

    ERE

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    J'ai une table avec agent. Dans cette table j'ai les champs NOMet PRENOM. J'utilise ces derniers dans un état Qreport. Je rencontre un problème d'espace dans mon état. Après reflexion, je veux supprimer le champ prenom pour avoir de l'espace.
    Je pense que vous faites une grosse erreur, avoir deux champs nom et prénom est ce qu'il y a de mieux.
    En quoi allez-vous gagner de l'espace en concaténant deux champs en un seul ?

    Si vous avez un problème au niveau de votre état, pourquoi vouloir modifier votre base de données et non pas votre état ?

    Bref je suis dubitatif sur la façon de résoudre votre problème.

  6. #6
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut à vous tous,

    Merci de m'avoir aidé. La requête de emmanuel.remy a presque résolu mon problème. Je dit presque, parce que ayant un responsable très rigoureux sur la présentation, il veut un espace d'un caractère entre le nom et le prénom. Si il y'a un grand écart il n'est pas content de cela.
    Je vois qu'avec la requête de emmanuel.remy il y'a près de 15 caractères vide entre le nom et le prenom. Bref je ferai avec.
    Si vous avez un problème au niveau de votre état, pourquoi vouloir modifier votre base de données et non pas votre état ?
    Pour répondre à Waldar, je ne compte pas supprimer le champ prénom. Il restera et sera toujours renseigné. Voici ce qui m'a poussé à vouloir faire cela :je dépose les champs nom et prénom sur un état. J'ai gardé une distance régulier entre nom et prénom à cause des noms très long. Mais il se trouve que si le nom est court une grand écart se trouve entre le nom et le prénom; ce qui n'est pas acceptable pour mes responsables. Donc si concatène le nom et le prénom je resoud un temps soit peu le problème d'écart. Au moins j'aurais un écart régulier. Coté programmation je ferai de tel sorte qu'il existe un écart d'un caractère entre le nom et le prénom.
    Merci pour votre aide. A très bientôt.

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Tu peux utiliser un TRIM pour supprimer les espaces:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE agent
    SET nom = TRIM(nom) || ' ' || TRIM(prenom);
    ERE

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Oui j'ai compris, mais votre problème de mise en page ne doit pas se résoudre au niveau de votre base de données.

    Quand votre responsable vous demandera la liste des noms de famille qu'allez-vosu faire, remettre le prénom dans une autre colonne ?

    J'imagine qu'une requête alimente votre état Qreport (c'est une supposition, je ne connais pas cet outil).
    Il suffit de modifier votre requête pour sélectionner la proposition d'Emmanuel Rémy : TRIM(nom) || ' ' || TRIM(prenom).

    Ainsi vous gardez deux attributs distincts dans votre base de données et votre rapport ressemble à ce que votre responsable vous demande.

  9. #9
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    @sondo: je n'ai pas voulu porter de jugement par rapport à ce que suggérait Waldar (c'est ton choix, et à la limite il n'y a rien à redire), mais il a évidemment raison à 200%. J'ajouterai à ce qu'il dit que si tu as une application qui utilise déjà la table Agent, elle risque de vite dérailler quand elle va rapatrier la nouvelle colonne "nom"...
    Et vous avez à votre disposition sous Oracle un arsenal tellement complet (View, trigger sur view...) que vous pouvez vous passer de cela.

    Enfin, si vous voulez avoir en dur dans votre table cette notion de nom-prénom, alors ajoutez une colonne nom_prenom et alimentez là par un trigger sur insertion et update.

    Bonne continuation,

    ERE

  10. #10
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Merci à vous tous pour vos excellent conseille. Je tacherai plus tard à faire plus attention. Je n'ai vraiment pas penser de faire une colonne Nom_Prenom,
    c' étais plus simple.
    Et vous avez à votre disposition sous Oracle un arsenal tellement complet (View, trigger sur view...) que vous pouvez vous passer de cela.
    Pour dire je suis toujours en apprentissage sous ORACLE. Je vais faire des recherche pour utiliser au mieux ces outils. Merci à vous tous.

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

Discussions similaires

  1. copie du contenu d'un champs dans un autre
    Par fagio dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/04/2013, 08h08
  2. copie du contenu d'un champs dans un autre
    Par Sinon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/05/2010, 08h26
  3. vba copie contenu d'un champs dans un autre
    Par juju124 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/05/2007, 17h15
  4. Ajouter le contenu d'un fichier dans un autre
    Par persia dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2007, 09h37
  5. Ajouter un champ dans une autre base Access
    Par scaalp dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 15h34

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