2017-10-18 8 views
-1

Quelqu'un peut-il me montrer comment puis-je me débarrasser des dupes, mais garder les colonnes dans mon jeu de résultats? J'ai simplifié la requête, donc ça devrait être bon à lire.Enregistrement distinct

SELECT 
cst_recno as 'ID', 
ind_first_name as 'First', 
ind_last_name as 'Last', 
cmt_code as 'Code', 
cmt_name as 'Com.Name', 
ixe_add_date as 'Date' 
FROM 
mb_committee_x_customer 
JOIN co_customer ON cst_key=cmc_cst_key 
JOIN mb_committee ON cmt_key=cmc_cmt_key 
JOIN co_individual ON ind_cst_key=cmc_cst_key 
LEFT JOIN mb_committee_x_position ON cop_key = cmc_cop_key 
LEFT JOIN mb_committee_type ON cmt_ctp_code = ctp_code 
LEFT JOIN mb_committee_position ON cpo_key=cop_cpo_key 
LEFT JOIN co_customer_x_address ON cmc_cxa_key=cxa_key 
LEFT JOIN co_address ON cxa_adr_key = adr_key 
LEFT JOIN co_individual_x_expertise_area ON ixe_ind_cst_key = cst_key 
LEFT JOIN co_expertise_area on exa_key = ixe_exa_key 
WHERE cmt_ctp_code = N'Council' AND cmc_end_date >= getdate() AND ind_deceased_flag != 1 and cst_recno = '782131' 
order by ind_last_name asc 

set Résultat:

ID  First Last Code    Com.Name    Date 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:10:44.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:10:05.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:10:15.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:11:10.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:10:25.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:10:56.000 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:11:21.000 

Je voudrais obtenir ce résultat mis en place, seul le maximum (date):

ID  First Last Code    Com.Name    Date 
782131 Jeffrey Ball MFCSILVER Multi-Family Council 2017-07-20 12:11:21.000 

Quelqu'un peut-il s'il vous plaît ajouter à ma question si je Je peux le prendre comme exemple, j'ai rencontré ce problème plusieurs fois et j'ai même demandé ici mais je n'ai pas encore réussi à l'appliquer correctement. Cela peut être une requête claire et simple où je veux essentiellement un identifiant unique avec la dernière date, mais inclure toutes les colonnes souhaitées gagner mon jeu de résultats. Merci beaucoup.

+1

regarder jusqu'à max et le groupe par utilisation .... tonnes d'exemples sur ici pour cela. – Twelfth

+0

Copie possible de [requête SQL de lignes dupliquées filtrées par la date maximale dans une table] (https://stackoverflow.com/questions/23476055/sql-query-of-duplicate-rows-filtered-by-max-date-within -one-table) –

Répondre

0

En utilisant MAX avec GROUP BY, Ajouter un champ dont vous avez besoin GROUP BY

SELECT 
cst_recno as 'ID', 
ind_first_name as 'First', 
ind_last_name as 'Last', 
cmt_code as 'Code', 
cmt_name as 'Com.Name', 
MAX(ixe_add_date) as 'Date' 
FROM 
mb_committee_x_customer 
JOIN co_customer ON cst_key=cmc_cst_key 
JOIN mb_committee ON cmt_key=cmc_cmt_key 
JOIN co_individual ON ind_cst_key=cmc_cst_key 
LEFT JOIN mb_committee_x_position ON cop_key = cmc_cop_key 
LEFT JOIN mb_committee_type ON cmt_ctp_code = ctp_code 
LEFT JOIN mb_committee_position ON cpo_key=cop_cpo_key 
LEFT JOIN co_customer_x_address ON cmc_cxa_key=cxa_key 
LEFT JOIN co_address ON cxa_adr_key = adr_key 
LEFT JOIN co_individual_x_expertise_area ON ixe_ind_cst_key = cst_key 
LEFT JOIN co_expertise_area on exa_key = ixe_exa_key 
WHERE cmt_ctp_code = N'Council' AND cmc_end_date >= getdate() AND ind_deceased_flag != 1 and cst_recno = '782131' 
GROUP BY cst_recno , 
ind_first_name , 
ind_last_name , 
cmt_code , 
cmt_name 
order by ind_last_name asc 
+0

Génial, merci beaucoup – klima

+0

s'il vous plaît marquer répondu –