2011-06-20 3 views
3

は、私は次のコードのビットを持っており、それはこれまでの作品:私はCOALESCEのデータセットのDISTINCTセットを取ることができますか?

SELECT 
    [id], 
    COALESCE ([Company], [LastName] + ', ' + [FirstName]) as Customer 
FROM [some_database].[dbo].[some_table] 
ORDER BY Customer 

しかし、私は重複して「お客様」のエントリを排除するためにDISTINCTキーワードを使用したいと思います。これは可能ですか?私はそれをいくつかの方法で試してみましたが、無駄です。

答えて

5

同じ名前の顧客エントリが複数ある場合は、特定の名前のIDを1つ選択する必要があります。ここで(すなわちmax())最近作成を選ぶの例ですが、あなたは(すなわちmin())最初に作成したいことがあります。

SELECT 
    Max([id]) as id, 
    COALESCE ([Company], [LastName] + ', ' + [FirstName]) as Customer 
FROM [some_database].[dbo].[some_table] 
GROUP BY 2 
ORDER BY Customer 

EDITED:申し訳ありません... GROUP BY、ない1

+1

私はMinを使用します。なぜなら、重複しているものがあれば、通常は古いものが私たちのシステムに保存するのに最適です。あなたのマイレージは異なる場合があります。 – HLGEM

+0

わかりませんが、それはグループ化されません2 –

+0

Thanks @Bohemian、しかし、私は次のエラーが表示されます: "各GROUP BY式は少なくとも1つの外部参照ではない列を含む必要があります。 – WEFX

関連する問題