5

SQL サーバーに 2 つのテーブルがあり、これらのテーブルからいくつかのデータを選択して結合したいのですが、最初のテーブルには次のような顧客がいます。

---------------
customer   id   
Dave       1    
Tom        2     
---------------

および 2 番目のテーブル i 購入のテーブル。これには、最後の購入のリストと、その製品を購入した顧客のリストが含まれます。

------------------
product    date       customer id
PC         1-1-2000   1
phone      2-3-2000   2
laptop     3-1-2000   1
------------------

最終購入日の最初のテーブル (顧客情報) を選択したい! 左結合を試みましたが、顧客 ID が 2 番目のテーブルで一意ではないため、最後の購入が得られません! SQL サーバー クエリでこの関数を実行するにはどうすればよいですか? よろしく

4

3 に答える 3

1

not exists勝利のために節を使用してください!

select c.customer, p.*
from   Customer as c
inner  join Purchase as p
on     p.customer_id = c.id
where  not exists (
       select 1
       from Purchase as p2
       where p2.customer_id = p.customer_id
       and p2.date > p.date
       )
于 2016-07-16T21:58:51.097 に答える
1

内部結合とグループ化を使用できると思います

select table1.customer, table1.id, table.max(date) 
from  table1 
inner join table2 on table1.id = table2.id 
group by table1.customer, table1.id
于 2016-07-16T22:03:42.783 に答える