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

Développement SQL Server Discussion :

DISTINCT sur une partie des colonnes


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut DISTINCT sur une partie des colonnes
    Bonjour,

    J'ai une table contenant le nom de comptes SRC à rajouter dans une autre table COMPTES. Dans ma table SRC, j'ai plusieurs fois le même nom, dans ma table COMPTES, je ne dois pas avoir le même nom.
    J'ai donc besoin de m'assurer que le nom d'un des comptes à rajouter n'existe pas déjà dans ma table de destination.

    Table SRC:
    Name

    Table COMPTES:
    AccountId,
    Name

    Si le nom existe déjà dans ma table COMPTES, je récupère l'AccountId de celui-ci. Sinon, j'en crée un nouveau.

    Voici ce que je pensais faire:(Pour le SELECT, le INSERT INTO ne posera pas de problème)

    SELECT DISTINCT SRC.Name, ISNULL (COMPTES.AccountId, newid())
    FROM src SRC
    LEFT JOIN dest COMPTES ON SRC.Name= COMPTES.Name COLLATE French_CI_AI

    Le problème c'est que ce SELECT me ramène également les doublons de ma table SRC et qu'il crée pour chacun d'entre eux un nouvel Id.

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Quelque chose du genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With CTE_SourceClean as
    ( 
      select distinct name from SRC
    )
    SELECT DISTINCT SRC.Name, ISNULL (COMPTES.AccountId, newid())
    FROM CTE_SourceClean SRC
    LEFT JOIN dest COMPTES ON SRC.Name= COMPTES.Name COLLATE French_CI_AI
    Edit:
    Au fait, quelles sont les raisons pour lequelles vous utilisez un GUID comme id ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    J'utilise des GUID, car je suis sur un projet pour CRM, et c'est ce dont j'ai besoin.

    Merci de votre aide. Ca marche...

Discussions similaires

  1. moyenne d'une variable sur une partie des valeurs
    Par DiverSIG dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/09/2009, 22h19
  2. hiérarchies sur une partie des données
    Par anayathefirst dans le forum SSAS
    Réponses: 2
    Dernier message: 12/02/2009, 15h10
  3. CRXI - Select distinct sur une partie de la requete
    Par battl14 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 03/12/2008, 17h19
  4. distinct sur une partie de ligne
    Par igorzup dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/03/2007, 00h08
  5. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04

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