台灣最大程式設計社群網站
線上人數
706
 
會員總數:245462
討論主題:189220
歡迎您免費加入會員
討論區列表 >> Oracle >> 合併2個表並相加比較
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
合併2個表並相加比較
價值 : 100 QP  點閱數:1611 回應數:5

樓主

joe
門外漢
0 24
1086 48
發送站內信

大家好,小弟有個問題請教,我有2個table,A表是主單,B表是子單,想合併並輸出A表的單號,尚未完全出貨的資料來,2表如下:
A表
p01 主單號
p09 人名
p25 出貨狀態
p04 訂單日期

B表
pn01 主單號
pn02 子單號
pn03 訂購名稱
pn20 訂購量
pn51 已出貨量
pn53 尚未出貨量



資料有符合 p09='amy' and p25='2' 條件輸出來,但卻沒有符合 B.pn20 > B.pn51+B.pn53 ,而是全部資料都輸出來了。

搜尋相關Tags的文章: [ 合併 ] ,
本篇文章發表於2013-07-17 09:28
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

花旗蔘
檢舉此回應

本篇文章回覆於2013-07-17 10:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

joe
檢舉此回應
謝謝版主,原來是我對union的語法沒搞清楚,我改成下面這樣,條件的限制有出來,但因為一筆A表的主單號有很多筆B表的子單號,所以結果就出現很多筆 p01主單號,請問該如何把重復的值去除,只留一筆不同的P01,我在select後面加上 distinct ,但資料就出不來了。


本篇文章回覆於2013-07-17 16:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

joe
檢舉此回應
試出來了,雖然不知我這樣寫正不正確,我再加上子查詢的方式就成功了,謝謝版主提醒。


本篇文章回覆於2013-07-17 16:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

joe
檢舉此回應
啊!貼錯了!下面這樣才對


本篇文章回覆於2013-07-17 16:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

vincent
檢舉此回應
我提供一個 簡短的sql 不知道是不是符合你的需求

select a.p01,a.p09,a.p25,a.p04,b.pn53 from a表 a, b表 b
where a.p01 = b.pn01 and a.p09 ='amy' and a.p25='2' and b.pn20 > b.pm51

抓出來的結果是 : 人名是 = 'any' , 出貨狀態= '2' , 訂購數量 > 已出的數量
本篇文章回覆於2013-11-29 11:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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