Bienvenue invité. SVP enregistrez vous pour être membre.
:: Connexion
Identifiant :

Mot de passe :

Se souvenir de moi



Mot de passe perdu ?

Inscrivez-vous !
:: Recherche
:: Menu Principal

Parcourir ce sujet:   1 Utilisateur(s) anonyme(s)





Jointure entre deux tables
Nouveau
Inscrit:
27/10/2016 17:09
De Bizerte
Groupe:
Utilisateurs enregistrés
Post(s): 2
Hors Ligne
Bonjour à tous,
je vais commencer par vous présenter mes deux tables

Crédit
Cod_Client
Montant

ID_Client
Cod_Client
ID
Type_ID
-On a trois types ID
1- Carte identité
2- Passeport
3- Carte séjour

Donc un client peut avoir plus q'une ID dans la table 'ID_Client' mais un seul COD_Client qui est le clé primaire dans la table 'Crédit'.

J'ai crée une vue dont la requête est la suivante:
SELECT
DISTINCT (CASE WHEN (i.Type_ID =1) THEN 'Carte identité'
WHEN (i.Type_ID =2) THEN 'Passeport'
WHEN (i.Type_ID =3) THEN 'Carte séjour'
END ) as [TYPDOC], i.ID as NumID, C.Cod_Client, C.Montant From Credit as C LEFT OUTER JOIN ID_Client i on C.Cod_Client=i.Cod_Client

Mon problème c'est que si le client a plusieurs ID je veut seulement afficher la ligne qui possède l'ID la plus important (1 Plus important que 2 plus important que 3)

ET MERCI D'AVANCE

Contribution le : 27/10/2016 17:20
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Pro
Inscrit:
21/02/2007 21:12
De Nice
Groupe:
Utilisateurs enregistrés
Post(s): 577
Hors Ligne
Citation :

Manbiz a écrit:
Bonjour à tous,
je vais commencer par vous présenter mes deux tables



ET MERCI D'AVANCE


Pas de quoi... mais alors vraiment!

Contribution le : 27/10/2016 17:49
_________________
Win 10 Famille 64 bits v1909 - Opera 92.0
HARDWARE : partie de l'ordinateur qui reçoit les coups quand se plante le software (P. Desproges)
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Expert
Inscrit:
08/04/2012 17:10
Groupe:
Utilisateurs enregistrés
Post(s): 2155
Hors Ligne
« Jointure entre deux tables ». Avez-vous pensé à Ni Clous Ni vis. Désolé, mais c'était sur un plateau. Bon, je sors.

Contribution le : 27/10/2016 17:54
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Pro
Inscrit:
21/02/2007 21:12
De Nice
Groupe:
Utilisateurs enregistrés
Post(s): 577
Hors Ligne
peut-être: https://fr.pinterest.com/pin/64528207139290029/ ?

(Deuxième degré bien sûr!)... mais la perche était si longue...

Contribution le : 27/10/2016 18:04
_________________
Win 10 Famille 64 bits v1909 - Opera 92.0
HARDWARE : partie de l'ordinateur qui reçoit les coups quand se plante le software (P. Desproges)
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Régulier
Inscrit:
21/06/2009 19:42
Groupe:
Utilisateurs enregistrés
Post(s): 240
Hors Ligne
Bonjour,
Je pense que ton problème est lié à un programme de gestion de base de données (Access, LibreOffice Base ou autre), ce que tu aurais du préciser.
Je doute que tu puisses trouver sur ce ce forum généraliste un "gratilogcien" pour t'aider. Je peux me tromper, mais personnellement j'en suis incapable.

Cordialement.

Contribution le : 27/10/2016 18:58
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Régulier
Inscrit:
13/09/2012 15:20
Groupe:
Utilisateurs enregistrés
Post(s): 242
Hors Ligne
Je vais y regarder car j'ai mal lu ton problème...
EDIT :
Avec cette requête (sans ton CASE) :
SELECT Max(ID_client.Id_Type) AS MaxDeId_Type, ID_client.Cod_Client, Credit.Montant
FROM Credit INNER JOIN ID_client ON Credit.Cod_Client = ID_client.Cod_Client
GROUP BY ID_client.Cod_Client, Credit.Montant;


J'obtiens ceci :
MaxDeId_Type Cod_Client Montant
2 1 100
3 2 200
Depuis ces tables :
Credit :
Cod_Client Montant
1 100
2 200
ID_Client :
ID Cod_Client Id_Type
1 1 1
2 1 2
3 2 1
4 2 3

Est-ce cela que tu veux ?

EDIT : sinon MIN au lieu de max pour avoir la plus petite valeur de Id_Type

Contribution le : 27/10/2016 19:26
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tables
Expert
Inscrit:
24/07/2012 19:49
Groupe:
Utilisateurs enregistrés
Post(s): 3570
Hors Ligne
Citation :

Manbiz a écrit:

Mon problème c'est que si le client a plusieurs ID je veut seulement afficher la ligne qui possède l'ID la plus important (1 Plus important que 2 plus important que 3)


Essaie SELECT MIN au lieu de SELECT DISTINCT.

Bernard

Contribution le : 28/10/2016 10:16
_________________
Windows 7 SP1 32 bits
Windows XP SP3
Créer un fichier PDF de la contribution Imprimer


Re: Jointure entre deux tabels
Nouveau
Inscrit:
27/10/2016 17:09
De Bizerte
Groupe:
Utilisateurs enregistrés
Post(s): 2
Hors Ligne
Merci à Tous
J'ai trouvé la solution:
WITH T AS
(
SELECT CASE WHEN i.Type_ID =1 THEN 'Carte identité'
WHEN i.Type_ID =2 THEN 'Passeport'
WHEN i.Type_ID =3 THEN 'Carte séjour' END as TYPDOC,
i.ID as NumID, C.Cod_Client, C.Montant,
ROW_NUMBER() OVER(PARTITION BY ID ORDER BY Type_ID) AS N
From Credit as C
LEFT OUTER JOIN ID_Client i on C.Cod_Client=i.Cod_Client
)
SELECT * FROM T WHERE N = 1;


Contribution le : 28/10/2016 11:35
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe    
Message:*


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]