台灣最大程式設計社群網站
線上人數
772
 
會員總數:242931
討論主題:187836
歡迎您免費加入會員
討論區列表 >> MS SQL >> 有兩個Table A 與 Table B left join 問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有兩個Table A 與 Table B left join 問題
價值 : 50 QP  點閱數:481 回應數:4

樓主

最愛小天使
門外漢
0 17
280 42
發送站內信

捐贈 VP 給 最愛小天使
有兩個Table A 與 Table B
條件如下:
A.AcountNo = B.AcountNo 成立的
取得ApNo數值最大的一筆 將ApNo最大值的ApNo 放置 viwetable
最後產生的viwetable AcountNo 資料量需與 TABLE A 是一致的。
我使用A left join B 不會產生下面結果。 可否給點指點謝謝~


TABLE A
---------------------------------------
key | AcountNo | Value
0 | 02 | 44
1 | 02 | 55
2 | 03 | 66
3 | 04 | 77
4 | 05 | 88
5 | 07 | 99
6 | 08 | 100

TABLE B
-------------------------------------
ApNo | AcountNo
1 | 02
2 | 02
3 | 02
4 | 03
8 | 07
10 | 07
--------------------------------------------------


產生新viwetable 如下
--------------------------------------------------
key|AcountNo| Value | ApNo
0 |02 | 44 | 3
1 |02 | 55 | 3
2 |03 | 66 | 4
3 |04 | 77 | null
4 |05 | 88 | null
5 |07 | 99 | 10
6 |08 | 100 | null

搜尋相關Tags的文章: [ sql left join ] ,
本篇文章發表於2018-01-19 10:46
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
請問一下,
你的語法可以參考一下嗎?
本篇文章回覆於2018-01-19 12:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般來說。你並無法直接使用b表。需要做一下子查尋的方式才行。
讓b表的資料先做唯一化處理才行
也就是說你原本的b表

要先讓它變成如下的資料,

也就是用其b表的AcountNo做唯一值處理,並取得apno的最大值
一般來說那只要搭配group跟max函數就可以處理。

再將這張表left join給a表就完成了。
本篇文章回覆於2018-01-19 13:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

最愛小天使
捐贈 VP 給 最愛小天使 檢舉此回應
dear 版主你好:
了解你的意思 。
我一直想要唯一值DISTINCT 但困擾很久。sql 基本運用沒學好。
我的資料要將其AcountNo 不重複且取ApNo為最大值唯一,成一個表困擾很久。

本篇文章回覆於2018-01-19 16:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

最愛小天使
捐贈 VP 給 最愛小天使 檢舉此回應
SELECT Max([ApplyNo])
,[AccountNo]
FROM [dbo].[vw_dis_ApplyFUMasterWithAccount]
group by AccountNo
本篇文章回覆於2018-01-19 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.