2015-09-29 192 views
0
select qi.qtyonhand + qd.delqty as teste, 
     qi.itemname 
    from qitem qi, qdel qd 
where qi.itemname = qd.itemname 
    and qd.deptname = 'recreation'; 


select qi.qtyonhand - qs.saleqty as teste, 
     qi.itemname 
    from qsale qs, qitem qi 
where qi.itemname = qs.itemname 
    and qs.deptname = 'recreation'; 

我試圖從qdel表的數量增加,並從qsale表的數量減去更新qitem數量計數。我試圖把它全部放到一列中,但qdel表中的項目可能沒有"recreation"部門名稱,所以當我嘗試將select語句合併爲一個時,它將從qitems中刪除一些項目。的Oracle SQL - 聯合兩個SELECT語句

+0

我看不出有任何更新在那裏,所以我真的不知道你的」重新嘗試去做。在我看來,你可能希望做一個外連接。順便說一句,爲什麼一切都以'q'開頭? – vesan

+0

就像第一個select語句有8行輸出一樣,同時第二個select語句只有4行,兩個語句中只有2行。含義我想要合併的行但沒有重複的行具有相同的項目名稱。 – zapwreckage

回答

1

這是怎麼回事?如果這不能提供理想的結果,您是否可以顯示一些樣本數據以更好地解釋您需要的內容?

select qi.qtyonhand + NVL(qd.delqty,0) + NVL(qa.saleqty,0) as teste, qi.itemname 
from qitem qi 
left outer join (select * from qdel where deptname = 'recreation') qd 
    on qi.itemname = qd.itemname 
left outer join (select * from qsale where deptname = 'recreation') qs 
    on qi.itemname = qs.itemname 
where (qd.delqty is not null or qs.saleqty is not null) 

(有可能是做一個簡單的方法,特別是如果qitem也有deptname列。)