Oracle Development
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsDatabasesOracle Development

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old July 2nd, 2004, 08:51 AM
anthinino anthinino is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Mar 2004
Posts: 1 anthinino User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Sql for Join functionality

Instead of the Union All, I want to convert the following SQL to three new sets of SQL but can't get JOIN to work in oracle; first "inner join" where records that exist only in both tables are returned; second "left join" where all records from first table are returned plus records from second table that exist in first table, and last a "right join" where all records from second tabe are returned plus records from first table that exist in second table:

SELECT R_COMM_CD.COMM_CLS COMM_CLS, CAST(NULL AS VARCHAR2(60)) LGL_NM, CAST(NULL AS VARCHAR2(25)) MANFR_NM, CAST(NULL AS VARCHAR2(25)) MANFR_PART_NO, R_INVN.AVAIL_QTY COMM_QTY, R_INVN.STK_COMM_CD COMM_CD, R_INVN.COMM_DSCR COMM_DSCR, R_INVN.UNIT_PRICE UNIT_PRICE, CAST(NULL AS VARCHAR2(8)) SRC_DOC_CD, CAST(NULL AS VARCHAR2(20)) SRC_DOC_ID, CAST(NULL AS NUMBER(10,0)) SRC_LN_NO, R_INVN.VEND_CUST_CD VEND_CUST_CD, CAST(NULL AS NUMBER(10,0)) SRC_INV_FL, CAST(NULL AS NUMBER(10,0)) SRC_BUYS_FL, CAST(NULL AS NUMBER(10,0)) SRC_MA_FL, CAST(1 AS NUMBER(10,0)) SRC_CD, R_COMM_CD.COMM_SPECS COMM_SPECS, R_INVN.ISS_UOM UNIT_MEAS_CD, CAST(NULL AS NUMBER(14,6)) UNIT_PRICE_TO, CAST(NULL AS NUMBER(14,6)) UNIT_PRICE_FM, CAST(NULL AS VARCHAR2(4)) SRC_DOC_DEPT_CD, CAST(NULL AS NUMBER(10,0)) LN_TYP, CAST(NULL AS NUMBER(10,0)) SRC_VEND_LN_NO, CAST(NULL AS NUMBER(10,0)) BUYS_FL, CAST(NULL AS NUMBER(10,0)) INV_FL, CAST(NULL AS NUMBER(14,2)) CNTRC_AM, CAST(NULL AS VARCHAR2(60)) COMM_DSCR_UP, CAST(NULL AS VARCHAR2(60)) ALIAS_NM, CAST(NULL AS VARCHAR2(8)) PO_DOC_CD, CAST(NULL AS VARCHAR2(4)) PO_DOC_DEPT_CD, CAST(NULL AS VARCHAR2(20)) PO_DOC_ID, CAST(NULL AS VARCHAR2(8)) MA_DOC_CD, CAST(NULL AS VARCHAR2(4)) MA_DOC_DEPT_CD, CAST(NULL AS VARCHAR2(20)) MA_DOC_ID, R_INVN.WHSE_CD WHSE_CD, CAST(NULL AS NUMBER(10,0)) MST_AGRMT_FL, R_INVN.STK_ITM_SFX STK_ITM_SFX FROM R_INVN, R_COMM_CD WHERE (R_INVN.STK_COMM_CD=R_COMM_CD.COMM_CD) UNION ALL

SELECT R_COMM_CD.COMM_CLS COMM_CLS, R_VEND_CUST.LGL_NM LGL_NM, MA_DOC_COMM.MANFR_NM MANFR_NM, MA_DOC_COMM.MANFR_PART_NO MANFR_PART_NO, MA_DOC_COMM.QTY COMM_QTY, MA_DOC_COMM.COMM_CD COMM_CD, MA_DOC_COMM.COMM_DSCR COMM_DSCR, MA_DOC_COMM.UNIT_PRICE UNIT_PRICE, MA_DOC_COMM.DOC_CD SRC_DOC_CD, MA_DOC_COMM.DOC_ID SRC_DOC_ID, MA_DOC_COMM.DOC_COMM_LN_NO SRC_LN_NO, MA_DOC_COMM.VEND_CUST_CD VEND_CUST_CD, CAST(NULL AS NUMBER(10,0)) SRC_INV_FL, CAST(NULL AS NUMBER(10,0)) SRC_BUYS_FL, CAST(NULL AS NUMBER(10,0)) SRC_MA_FL, CAST(2 AS NUMBER(10,0)) SRC_CD, R_COMM_CD.COMM_SPECS COMM_SPECS, MA_DOC_COMM.UNIT_MEAS_CD UNIT_MEAS_CD, CAST(NULL AS NUMBER(14,6)) UNIT_PRICE_TO, CAST(NULL AS NUMBER(14,6)) UNIT_PRICE_FM, MA_DOC_COMM.DOC_DEPT_CD SRC_DOC_DEPT_CD, MA_DOC_COMM.LN_TYP LN_TYP, MA_DOC_COMM.DOC_VEND_LN_NO SRC_VEND_LN_NO, R_COMM_CD.BUYS_COM_FL BUYS_FL, R_COMM_CD.COMM_INVNT_FL INV_FL, MA_DOC_COMM.CNTRC_AM CNTRC_AM, CAST(NULL AS VARCHAR2(60)) COMM_DSCR_UP, R_VEND_CUST.ALIAS_NM ALIAS_NM, CAST(NULL AS VARCHAR2(8)) PO_DOC_CD, CAST(NULL AS VARCHAR2(4)) PO_DOC_DEPT_CD, CAST(NULL AS VARCHAR2(20)) PO_DOC_ID, MA_DOC_COMM.DOC_CD MA_DOC_CD, MA_DOC_COMM.DOC_DEPT_CD MA_DOC_DEPT_CD, MA_DOC_COMM.DOC_ID MA_DOC_ID, CAST(NULL AS VARCHAR2(8)) WHSE_CD, CAST(NULL AS NUMBER(10,0)) MST_AGRMT_FL, CAST(NULL AS VARCHAR2(3)) STK_ITM_SFX FROM MA_DOC_COMM, MA_DOC_HDR, R_COMM_CD, R_VEND_CUST WHERE (MA_DOC_COMM.COMM_CD=R_COMM_CD.COMM_CD) AND (MA_DOC_COMM.VEND_CUST_CD=R_VEND_CUST.VEND_CUST_CD) AND (MA_DOC_COMM.DOC_TYP='MA') AND (MA_DOC_COMM.DOC_PHASE_CD=3) AND (MA_DOC_COMM.DOC_CD=MA_DOC_HDR.DOC_CD) AND (MA_DOC_COMM.DOC_ID=MA_DOC_HDR.DOC_ID) AND (MA_DOC_COMM.DOC_DEPT_CD=MA_DOC_HDR.DOC_DEPT_CD) AND (MA_DOC_COMM.DOC_VERS_NO=MA_DOC_HDR.DOC_VERS_NO) AND (MA_DOC_HDR.EFEND_DT>=to_date('2004-07-01','YYYY-MM-DD')) AND ( MA_DOC_HDR.DOC_FUNC_CD <>3) ORDER BY SRC_CD, COMM_CD, STK_ITM_SFX

Reply With Quote
  #2  
Old July 2nd, 2004, 11:24 AM
jim mcnamara jim mcnamara is offline
......@.........
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Jun 2004
Posts: 1,308 jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level)jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level)jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level)jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level)jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level)jim mcnamara User rank is Sergeant Major (2000 - 5000 Reputation Level) 
Time spent in forums: 1 Week 3 Days 5 h 20 m 49 sec
Reputation Power: 48
Try plus signs embedded in ( ) on whichever side you want
Code:
where a.fld         =b.fld (+)  and
         a.fld2 (+) = b.fld2      and
         a.fld3      = b.fld3


the (+) construct creates an outer join.

I can't even begin to read your SQL as posted, try formatting it.

Reply With Quote
Reply

Viewing: Dev Shed ForumsDatabasesOracle Development > Sql for Join functionality


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 2 hosted by Hostway
Stay green...Green IT