2017-01-10 9 views
0

私は私たちのマーケティンググループに一意の電子メールアドレスのリストを提供するよう要求しました。私は問題なしでリストを作ることができます。彼らは今、その電子メールアドレスが使用された最新の日付を追加したい。電子メールアドレスの情報はcustomerというテーブルにあり、トランザクションの日付はactivityというテーブルにあります。 2つのテーブルは、アカウント番号フィールドで結合されています。 コードを書いた場合 select c.email, a.transactiondate from customer c join activity a on c.account = a.account where a.transactiondate between '12/1/2016' and '12/31/2016' 私は電子メールの複数の取引日になります。それは多くではありませんが、マーケティングの人々はそれに対処したくないです。SQLは、重複している最大の日付を取り除きます

selectに別名を付けると、電子メールと取引日の組み合わせでしか数値が小さくなりません。私は本当に必要なのは別個の電子メールとそのア​​カウント番号のトップ日付です。

ご協力いただきまして誠にありがとうございます。

答えて

0

電子メールでグループ化し、集計関数を使用して最新の日付を取得する必要があります。

select c.email, max(a.transactiondate) 
from customer c join activity a on 
c.account = a.account 
where a.transactiondate between '12/1/2016' and '12/31/2016' 
group by c.email 
+0

これは完全に – TheVavs

関連する問題