独自の「参照」のみを返そうとしていますが、「姓」と「電子メール」も取り戻す必要があります。私の例では、参照に複数の顧客を関連付けることができます。現在、私のクエリは、「参照」に関連付けられたすべての顧客を引き戻します。私は顧客の1人だけの詳細が必要なので、「姓」と「メール」を使って「参照」を一度取り消したい。SQL - 複数の列で一意の単一列の固有値を取得する
以下のクエリは例ですが、これは達成しようとしているシナリオに関連しています。
この例では、 'UniqueID'は基本的にアイテムがテーブルに追加された順序です。私はこれを必要とするので、最新のレコードでフィルタリングすることができます。 'Reference'は増分ベースではないので、私はこれを使うことはできません。
本質的には、重複した「参照」のインスタンス数をカウントしたいだけですが、「参照」のインスタンスと対応する「電子メール」と「姓」のインスタンスを返し、追加された最新のレコードで並べ替えます。
各テーブルにあるものの味:
CustomerPackage: UniqueID (INT); Reference (STRING)
Customer: FirstName (STRING); Surname (STRING); Email (STRING); Address (STRING)
PurchaseDetails: PurchaseDate (DATE); PurchaseDescription (STRING); PurchaseType (INT)
SQLスクリプトの例:
USE Example
GO
SELECT TOP 10
CP.Reference,
C.Surname,
C.Email
FROM CustomerPackage CP
INNER JOIN Customer C ON CP.UniqueID = C.UniqueID
INNER JOIN PurchaseDetails PD ON CP.UniqueID = PD.UniqueID
WHERE PD.PurchaseDate > dateadd(HOUR,10,getutcdate()) and PD.PurchaseDate < dateadd(DAY,29,getutcdate()) and PD.PurchaseType = 1
ORDER BY CP.UniqueID DESC
出力:
Reference Surname Email
1XX45 Smith [email protected]
1XX45 Jones [email protected]
1XX45 Betty [email protected]
4B678 Reeds [email protected]
========== =============
必要な出力:
Reference Surname Email
1XX45 Smith [email protected]
4B678 Reeds [email protected]
「e.e @ e.com」という電子メールが他の2つに比べて選択された理由は何ですか? –
論理はありません。重複する参照のどれかを選択することができます。ただ一つの参照が返されている限り、 – Scott
あなたは以下から2つの機能的な答えを選ぶことができます。 –