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 :

Remplissage à part d'une colonne


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 164
    Points
    164
    Par défaut Remplissage à part d'une colonne
    Bonjour,

    Je n'ai pas beaucoup d'expérience en SQL et ma question va peut-être vous paraître d'un niveau très bas.

    Je suis en train de remplir une base de données avec des données d'une ancienne base.

    J'ai une table version dans laquelle un champ (idProd) n'y était pas dans l'ancienne base.

    Donc j'arrive à remplir les autres colonnes par des insert générés par IBExpert (je passe de Interbase à Sql Server) mais pour cette colonne je ne sais pas comment m'y prendre.

    Je suppose qu'il faut faire un update dans lequel je fais un select mais comment récupérer l'idProd correspondant à tous les autres champs de la ligne courante à mettre à jour, sachant que le select bien sur me donnera tous les idProd existants?

    Merci pour votre aide

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye la magie, parce que avec les informations que tu donnes, je ne vois pas d'autres solutions.

    Il doit bien exister une règle de gestion qui permette de calculer ce idProd, mais nous ne pouvons pas la deviner !

  3. #3
    Membre habitué Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 164
    Points
    164
    Par défaut
    Bon j'affine ma question :

    Mon appli doit gérer (entre autres) des entreprises qui achètent des versions de produits. J'ai donc les tables Entreprise, Achete, Version et Produit.

    Dans Achete, j'ai les champs idEntreprise, idProduit, idVersion...
    Dans Version, j'ai idVersion, idProd...
    Dans Produit, j'ai idProd ...

    Donc dans Version j'aimerais remplir mon champs idProd qui corresponde au produit et à ce qu'à acheté l'entreprise.
    Je dois donc passer par des jointures, n'est ce pas? Mais comment récuperer l'idProd correspondant?

    C'est plus clair?

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Points : 358
    Points
    358
    Par défaut
    Essaies un peu ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Update version 
    set IdProd = P.idProd from Produit P, Achete A
    Where P.idProd = A.Idproduit and A.IdVersion = IdVersion

  5. #5
    Membre habitué Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 164
    Points
    164
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update version set idprod = 
    	p.idprod from produit p, achete a, version v
    	where a.idprod = a.idprod 
    	and a.idversion = v.idversion ;
    J'ai rajouté "v" devant le dernier idVersion qui était ambigu mais la colonne contient le meme chiffre partout, la requête n'est pas bonne. Merci pour ton aide, moi j'avais fais un select apres le "=", donc forcément il me disait que la requete avait plusieurs réponses donc qu'il ne pouvait pas l'affecter à une seule valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update version set idprod = 
    (select a.idprod 
    from achete a, version v 
    where v.idversion=a.idversion );
    Tant pis je vais regarder la requete de plus près, je voulais déjà m'assurer que c'était de cette façon qu'il fallait procéder, merci à toi.

  6. #6
    Membre habitué Avatar de LaNat
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Avril 2005
    Messages : 162
    Points : 164
    Points
    164
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update version set idprod = 
    	p.idprod from produit p, achete a, version v
    	where [b]p[/b].idprod = a.idprod 
    	and a.idversion = v.idversion ;
    J'avais fais a.idprod=a.idprod donc forcément!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/09/2010, 18h19
  2. remplissage automatique d'une colonne en fonction du contenu d'une autre
    Par renton59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2010, 18h36
  3. [XL-2007] remplissage Combo avec une colonne dynamique
    Par chikitin dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/07/2010, 15h55
  4. Remplissage auto d'une colonne avec une barre de progression
    Par Chikatilo dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 26/06/2008, 17h07
  5. remplissage automatique d'une colonne
    Par zanou666 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/12/2007, 15h32

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