2017-10-18 28 views
-1

私はどのようにしてダストを取り除くことができますが、私の結果セットの列を保つことができますか? クエリを簡略化して読みやすくする必要があります。別個のレコード

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 

結果セット:

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 

私は、この結果は、代わりにのみMAX(日)に設定を取得したいと思います:

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

は、誰かが私のクエリに追加していただけますので、I私は何度もこの問題にぶつかりましたが、私はここでも尋ねましたが、それでも正しく実装することはできませんでした。これは、私が基本的に最新の日付で一意のIDを必要としているが、すべての希望の列が私の結果セットを勝ち取ることを含む明確で単純な照会である可能性があります。どうもありがとうございました。 GROUP BYMAXを使用して

+1

は、ここにそのための例の使用....トンで最大とグループを検索GROUP BYに必要なすべてのフィールドを追加します。 – Twelfth

+0

[1つのテーブル内で最大日付でフィルタリングされた重複行のSQLクエリ]の重複可能性があります(https://stackoverflow.com/questions/23476055/sql-query-of-duplicate-rows-filtered-by-max-date-within -one-table) –

答えて

0

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

大変、ありがとうございました – klima

+0

それにマークしてください –

関連する問題