+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Nouveau Membre du Club
    Inscrit en
    novembre 2007
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 121
    Points : 25
    Points
    25

    Par défaut [Teradata] Lien entre tables

    Bonjour,

    J'ai une base Terardata et je dois faire un lien entre 2 tables sur un champ qui est caractére dans les 2 tables.

    Sauf que, il y a toujours un sauf, dans une des tables la donnée est formatée à 2 caratéres avec un 0 devant et dans l'autre non.

    Le lien entre les 2 tables ne se fait donc pas systématiquement. Je ne vois pas comment faire simplement

    Table 1 Table 2
    02 2
    17 17
    D'avance merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    5 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 5 718
    Points : 14 814
    Points
    14 814

    Par défaut

    Quel est le type des 2 colonnes ?
    Est-ce toujours une valeur numérique ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau Membre du Club
    Inscrit en
    novembre 2007
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 121
    Points : 25
    Points
    25

    Par défaut

    Les 2 colonnes sont en caractére

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    5 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 5 718
    Points : 14 814
    Points
    14 814

    Par défaut

    Quand je demandais le type, j'attendais la manière dont elles sont déclarées...
    CHAR ou VARCHAR ? Quelle taille ?

    Et puis tu n'as pas répondu à la seconde question :
    Est-ce toujours une valeur numérique ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau Membre du Club
    Inscrit en
    novembre 2007
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 121
    Points : 25
    Points
    25

    Par défaut

    Pardon c'est du VARCHAR(15)

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    5 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 5 718
    Points : 14 814
    Points
    14 814

    Par défaut

    Je réitère !
    Et puis tu n'as pas répondu à la seconde question :
    Est-ce toujours une valeur numérique ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Nouveau Membre du Club
    Inscrit en
    novembre 2007
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 121
    Points : 25
    Points
    25

    Par défaut

    Non ce n'est pas toujours des champs numériques. Mais quand c'est numérique c'est des valeurs de 00 à 99.

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    5 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 5 718
    Points : 14 814
    Points
    14 814

    Par défaut

    Le plus simple serait réellement de convertir les valeurs d'une des deux tables de manière à avoir des valeurs comparables parce que tu vas perdre en performances au niveau de ta jointure.

    Sinon tu peux faire comme ça :
    Code :
    Colonne_sans_0 = CASE WHEN Colonne_avec_0 BETWEEN '01' AND '09' THEN SUBSTRING(Colonne_avec_0 FROM 2) ELSE Colonne_avec_0 END
    Edit :
    Ou comme ça
    Code :
    Colonne_avec_0 = CASE WHEN Colonne_sans_0 BETWEEN '1' AND '9' THEN '0' || Colonne_sans_0 ELSE Colonne_sans_0 END
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Nouveau Membre du Club
    Inscrit en
    novembre 2007
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : novembre 2007
    Messages : 121
    Points : 25
    Points
    25

    Par défaut

    Merci

    Je vais tester ça la jointure avec le case et between.

    La transformation des tables pour mettre la mise en forme avant je voulais éviter par ce que c'est une table de 10 millions de lignes d'un côté et une petite de 20 000 de l'autre.

    C'est sur que les perf ça va pas être top mais je vais faire la comparaison.

    Encore merci

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •