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 :

Débutant - deplacer des valeurs dans un nouveau champs


Sujet :

Langage SQL

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut Débutant - deplacer des valeurs dans un nouveau champs
    Bonjour,

    je débute en SQL et je suis confronté a un probleme que je ne sais pas résoudre.

    Pour information, je souhaite faire une requete sur un systeme SQL Server 2000, la finalité étant d'afficher un graphique dans crystal reports.

    Le probleme que j'ai est le suivant :
    je possede un base de données de la forme :

    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
    Nom           Valeur
    ----           -------
    Abscisse01      0
    Abscisse02      4
    Abscisse03      5
    .
    .
    .
    AbscisseN     200
    Ordonnee01     1
    Ordonnee02     8
    Ordonnée03     10
    .
    .
    .
    OrdonneeN     234
    Ce que je souhaiterais faire avec ma requete, c'est remettre chaque abscisse sur la meme ligne que l'ordonnée correspondante, pour obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Nom     Abscisse   Ordonnee
    -----   ---------  ---------
    001           0           1
    002           4           8
    003           5           10
    .
    .
    .
    N             200        234
    Remarque : on peut considerer que N ne dépassera pas 100.

    Je suis vraiment bloqué la dessus, toute aide serait grandement appréciée.
    Merci a ceux qui prendront la peine de lire ce post.

    Bonne journée.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Points : 75
    Points
    75
    Par défaut tableau en SQL
    Salut,

    Voici mon idée :

    Faire un subtring pour obtenir uniquement les 2 positions numériques de Abscisses et Ordonnées.

    Faire un joint sur cette mini-clé, et le tour est joué



    Fred

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Merci pour la réponse, pour ce que j'en comprend l'idée a l'air d'etre bonne.

    Je crois qu'on peut selectionner la droite du champs Nom en utilisant la fonction RIGHT(Nom,2). Mais comment faire le lien en utilisant ceci comme une clé?

    J'imaginais quelquechose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT
      Nom
      Valeur
    FROM
      Matable
    WHERE
      ??Que mettre dans la suite??

    Encore merci pour votre aide et votre patience.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Points : 75
    Points
    75
    Par défaut
    Je pense qu'il faut 2 index ou 2 tables pour pouvoir faire :

    SELECT FIC1.ZON1 , FIC2.ZON1
    FROM FIC1 , FIC2
    WHERE SUBSTR(FIC1.CLE1 , 5 , 2 ) = SUBSTR(FIC2.CLE1 , 5 , 2)

    Pour la syntaxe, il faut voir sur ta machine...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Oui effectivement, si on a deux champs différents ca va bien cette instruction, malheureusement ce n'est pas le cas.
    Est ce qu'on peut faire une instruction en 2 fois, genre dans un premier temps copier tous les enregistrements qui commencent par "abscisse" dans une nouvelle colonne, puis ensuite utiliser la commande donnée par Fred?

    Selectionner la valeur je sais faire :

    SELECT Valeur
    FROM matable
    WHERE LEFT(Valeur,8)="ABSCISSE"

    Mais lui dire de mettre ca dans un nouveau champ, c'est possible?

    En tout cas merci pour ton aide fred.

  6. #6
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    pour corriger un peu Fred, il faut utiliser des alias car tu peux effectuer les 2 lectures sur la même table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT FIC1.ZON1 , FIC2.ZON1
    FROM TABLE FIC1 , TABLE FIC2
    WHERE SUBSTR(FIC1.CLE1 , 5 , 2 ) = SUBSTR(FIC2.CLE1 , 5 , 2) and
    SUBSTR(FIC1.CLE1 , 1 , 5 ) = 'ABSCI' and
    SUBSTR(FIC2.CLE1 , 1 , 5 ) <> 'ABSCI'
    FIC1.ZON1 est le même champs de la même table que FIC2.ZON1...
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Points : 1 111
    Points
    1 111
    Par défaut
    Merci beaucoup, je m'en vais essayer ca tout de suite.

    EDIT : c'est tout a fait ca, merci beaucoup pour votre aide, j'm'en serais pas sorti tout seul.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/01/2012, 14h55
  2. [AC-2003] Référencer des valeurs dans un champs de calcul
    Par Piccou dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 24/08/2009, 15h47
  3. Réponses: 6
    Dernier message: 08/04/2008, 13h17
  4. Réponses: 5
    Dernier message: 12/01/2007, 21h40
  5. Réponses: 3
    Dernier message: 21/08/2006, 11h31

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