2017-03-29 3 views
0

J'ai une base de données SQLite3 et je dois sélectionner DISTINCT à partir d'une ligne spécifique (H981.VISITID) de la requête suivante:Distinct seule colonne SQL

`SELECT 
     H981.VISITID AS pat_no, H98.MED_REC_NO 

FROM  H98_Paradigm_Encounters H98 
LEFT OUTER JOIN H98_MLO_Encounters H981 
    ON H98.MED_REC_NO=H981.EXTERNALID` 

Les résultats produisent actuellement quelque chose comme ceci:

|pat_no|med_rec_no|note| 
|1  |4545  |Test| 
|2  |4545  |Test| 
|3  |4545  |Test| 
|4  |4545  | | 
|1  |4545  | | 
|2  |4545  | | 
|3  |4545  | | 
|4  |4545  |Test| 

Je voudrais que les résultats pour produire quelque chose comme:

|pat_no|med_rec_no|note| 
|1  |4545  |Test| 
|2  |4545  |Test| 
|3  |4545  |Test| 
|4  |4545  | | 

Je J'ai essayé plusieurs choses que j'ai vues ici, mais rien ne semble fonctionner. Aucun conseil?

+0

Avez-vous essayé le mot clé 'DISTINCT'? Quel est le problème?. Montrez-nous le schéma db, les exemples de données et la sortie attendue. \t S'il vous plaît lire [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Et voici un bon endroit pour [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) pour apprendre comment améliorer la qualité de vos questions et obtenir de meilleures réponses. –

+0

Je l'ai fait. Cela ne semble pas fonctionner non plus. – jbw028

+1

Vous semblez avoir une question simple mais vous avez juste jeté une charge de code SQL sans détails sur ce qu'il fait et aucun détail sur les tables et les schémas sources. Vous pourriez faire un exemple simple du code et mettre en évidence le problème avec quelques exemples de données et montrer ce que vous voulez que la sortie soit. En outre, nous ne voulons pas voir 50 colonnes impaires lorsque vous posez une question sur une seule colonne. – Tanner

Répondre

0


Vous ne pouvez pas DISTINCT par une seule colonne, mais seulement, mais une rangée:

select DISTINCT 

retourne la liste des lignes uniques chose que vous recherchez est appelé « groupe par » et vous ne pouvez pas l'utiliser pour des colonnes mutch. Pourquoi? Imaginons que vous vouliez obtenir seulement une valeur de H981.VISITID, mais une valeur de H981.VISITID fait référence à deux valeurs de H98.DIAGNOSIS_2. Lequel d'entre eux devrait être affiché alors? Ce n'est pas clair.
simplement vérifier groupe par déclaration ou dire en commentaire ce que vous voulez recevoir et je vais vous aider :)

SELECT distinct 
     H981.VISITID AS pat_no, H98.MED_REC_NO 

FROM  H98_Paradigm_Encounters H98 
LEFT OUTER JOIN H98_MLO_Encounters H981 
    ON H98.MED_REC_NO=H981.EXTERNALID` 

fonctionnera si toutes les valeurs de med_rec_no contiennent la même valeur avec certains pat_no !! Autre façon dont vous aurez besoin d'utiliser le groupe par (cochez ce sujet Select first row in each GROUP BY group?)