置頂
SQL join問題
各位大神大家好吼
今天我要用A table去 join B table
但是我要找出B table某個欄位最大或最小值的那一列
請問要怎麼下SQL呢?
例如用A table的ID欄位去 join B table的ID欄位
但在B table的相同ID有很多列
例如ID=5可能該ID符合的有10列
我要只要MAX(PayDate)最大的那一列
而且ID是1、3、5、8、10這樣很多群組
不曉得這樣的話要怎麼取得每一個ID最大的值的那一列來join呢?
up vote
1
;with x as(select * from A),
y as (select ID,MAX(paydate) from B group by ID)
select * from x inner join y on x.ID=y.ID
你得意思應該是要這樣吧?
up vote
1
此問題有點奇怪,以技術上來說,要取得各組(以ID來分組)中payDate最大值是有點技巧沒錯,但是在取得ID後再去跟A Table的ID做join,那麼去選出B Table的payDate最大值的列就沒意義了。或許有誤會你的描述,所以我只寫出取出各組最大值的方式,join的部份就看你要怎麼用囉
declare @tableB table(id int,payDate smalldatetime);
insert into @tableB values(1,'2015-10-01'),(1,'2015-10-02'),(2,'2015-10-03'),(2,'2015-10-04');
select id,payDate from @tableB T where payDate=(select max(payDate) from @tableB where id=T.id);
up vote
1
A inner join t on A.ID=t.ID
B做group by
會員登入
(先登入會員才能回覆留言喔!)
