SQL [Résolu]

Signaler
Messages postés
149
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
3 avril 2010
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Salut! je voudrai afficher dans une meme colonne d'un dataGridView deux champs de deux tables differentes.
tbl1(c1,c2,c3) et
tbl2(c4,c5,c6)
je veux afficher dans la premiere colonne du dataGridView toutes les veleurs prise par C1 et C2


 

5 réponses

Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
La syntaxe SQL suivante permet de récuperer dans un champ nommé c1 la liste la liste des élements contenus dans c1 de tbl1 et c2 de tbl2 (à priori avec dédoublonnage).


Cela règle-t-il ton problème?

SELECT c1 FROM tbl1
UNION SELECT c4 FROM tbl2
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
Les valeurs de C1 et C2 ou de C1 et C4 qui sont soulignés ?
(fait gaffe à donner les bonnes infos)

De toute façon, ce n'est pas possible avec une requète.
C1 et C2 : La structure de la table ne le permet pas.
C1 et C4 : Il faudra faire deux requètes (un vers chaque table), mais le résultat de la 2ème effacera la 1ère.
   Il faut donc faire deux requètes vers deux dataGridView (rendues invisibles) puis rapatrier les 2 en 1 dataGrid

Je ne sais pas à quoi correspondent ces valeurs, mais tu aurais dû structurer tes tables différemment :
Une table avec tous les C plus un lien vers la table :
   Table1.IdFiche   ' pour la liste des données principales
   Table2.IdFiche   ' pour la liste des données principales
   Valeurs.IdValeur   ' pour la liste de toutes les valeurs possibles
          .Valeur     ' IdValeur identifie une des valeurs, Valeur est la valeur (!)
          .Numéro     ' et Numéro dit si c'est C1, C2, ... Cx
Reste plus qu'à joindre les deux avec une table d'interfaçage :
   Interface.IdFiche   ' où IdFiche + IdValeur sont des clés primaires
            .IdValeur
La requète pourrait alors ressembler à ça :
   Select V.Valeur, T.IdFiche
     From Valeurs V, Table T, Interface I
    Where I.IdFiche = T.IdFiche
      And I.IdValeur = V.IdValeur
      And V.Numéro in (1, 4)
Et pour lister C1, C2 et C3 de ta Table1, par exemple :
   Select V.Numéro, V.Valeur
     From Valeurs V, Table T, Interface I
    Where I.IdFiche = T.IdFiche
      And I.IdValeur = V.IdValeur
    Order By T.IdFiche, V.Numéro

Oui, c'est plus compliqué que tu ne le pensais, mais les Tables sont faites pour stocker des données verticalement et pas horizontalement.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
149
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
3 avril 2010

Merci beaucoup jack, désolé pour les soulignements je me suis trompé c'est C1 et C4. MERCI
Messages postés
149
Date d'inscription
jeudi 27 mars 2003
Statut
Membre
Dernière intervention
3 avril 2010

salut JPGVB, 10000 merci c'est ce que je voulais, MERCI BEAUCOUP
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Merci JPGVB
On en apprend tous les jours !