我在sql server中有两个表,我想从这些表中选择并加入一些数据。第一个表有一些客户喜欢:
10 def fn X(n) =
20 n = n + 1
30 print n
40 rem I'd like the definition of function X to end at line 30 above
50 fn X(5) rem Produces syntax error on line 40
和第二张表我购买的表格包括最近购买的成本列表以及哪个客户购买了该产品:
---------------
customer id
Dave 1
Tom 2
---------------
我想选择第一张表(客户信息)及其购买的最后日期! 我试过左连接,但这并没有给我最后购买因为客户ID在第二个表中不是唯一的!如何使用SQL Server查询执行此功能?此致
答案 0 :(得分: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
)
答案 1 :(得分:1)
如果您只想要最大日期,请使用聚合。对于没有购买的客户,我建议使用left join
:
select c.customer, c.id, max(p.date)
from customers c left join
purchases p
on c.id = p.customer_id
group by c.customer, c.id;
答案 2 :(得分:0)
我认为您可以使用内连接和分组
select table1.customer, table1.id, table.max(date)
from table1
inner join table2 on table1.id = table2.id
group by table1.customer, table1.id