JOIN over 3 tables with 'null' values?

Hello all,
I would like to join data from 3 tables, whereas from the 3rd table I just wanna join 2 columns, if a condition is met. otherwise those 2 columns should be NULL.
The following statement works, but only shows me the rows where all conditions are met. How do I display the rows from JOIN 1 if the JOIN 2 condition is not met?
SELECT
     a.c_name, a.c_date, a.c_description, a.c_sid,
     b.c_cID, b.type,
     c.name, c.value
FROM
     TABLE_1 a
INNER JOIN
     TABLE_2 b
ON
(b.c_name = a.c_name)
INNER JOIN
     TABLE_3 c
ON
(c.c_name = a.c_name)
AND
(c.comp_cID = b.comp_cID)
Thanks a lot and best regards,
Tom

OUTER JOIN

Similar Messages

  • Joining 3 tables with null values

    Hi,
    I have three tables that have varying data in. I want to write a query which will list all three in the result set, but when one of the tables doesn't have a row, write in No Value.
    I will be intending on joining the tables with account numbers. What will be the syntax of a join with three tables where I am not sure which table will have null values?
    Thanks...

    Something like
    select nvl(a.id,'No Value'), nvl(b.id, 'No Value'), nvl(C.id, 'No Value')
       from (select id from t1) a,
                  (select id from t2) b,
                  (select id from t3) c
      where a.id = b.id(+)
          and a.id = c.id(+)
    Hi,
    I have three tables that have varying data in. I want to write a query which will list all three in the result set, but when one of the tables doesn't have a row, write in No Value.
    I will be intending on joining the tables with account numbers. What will be the syntax of a join with three tables where I am not sure which table will have null values?
    Thanks...

  • Sql query slowness due to rank and columns with null values:

        
    Sql query slowness due to rank and columns with null values:
    I have the following table in database with around 10 millions records:
    Declaration:
    create table PropertyOwners (
    [Key] int not null primary key,
    PropertyKey int not null,    
    BoughtDate DateTime,    
    OwnerKey int null,    
    GroupKey int null   
    go
    [Key] is primary key and combination of PropertyKey, BoughtDate, OwnerKey and GroupKey is unique.
    With the following index:
    CREATE NONCLUSTERED INDEX [IX_PropertyOwners] ON [dbo].[PropertyOwners]    
    [PropertyKey] ASC,   
    [BoughtDate] DESC,   
    [OwnerKey] DESC,   
    [GroupKey] DESC   
    go
    Description of the case:
    For single BoughtDate one property can belong to multiple owners or single group, for single record there can either be OwnerKey or GroupKey but not both so one of them will be null for each record. I am trying to retrieve the data from the table using
    following query for the OwnerKey. If there are same property rows for owners and group at the same time than the rows having OwnerKey with be preferred, that is why I am using "OwnerKey desc" in Rank function.
    declare @ownerKey int = 40000   
    select PropertyKey, BoughtDate, OwnerKey, GroupKey   
    from (    
    select PropertyKey, BoughtDate, OwnerKey, GroupKey,       
    RANK() over (partition by PropertyKey order by BoughtDate desc, OwnerKey desc, GroupKey desc) as [Rank]   
    from PropertyOwners   
    ) as result   
    where result.[Rank]=1 and result.[OwnerKey]=@ownerKey
    It is taking 2-3 seconds to get the records which is too slow, similar time it is taking as I try to get the records using the GroupKey. But when I tried to get the records for the PropertyKey with the same query, it is executing in 10 milliseconds.
    May be the slowness is due to as OwnerKey/GroupKey in the table  can be null and sql server in unable to index it. I have also tried to use the Indexed view to pre ranked them but I can't use it in my query as Rank function is not supported in indexed
    view.
    Please note this table is updated once a day and using Sql Server 2008 R2. Any help will be greatly appreciated.

    create table #result (PropertyKey int not null, BoughtDate datetime, OwnerKey int null, GroupKey int null, [Rank] int not null)Create index idx ON #result(OwnerKey ,rnk)
    insert into #result(PropertyKey, BoughtDate, OwnerKey, GroupKey, [Rank])
    select PropertyKey, BoughtDate, OwnerKey, GroupKey,
    RANK() over (partition by PropertyKey order by BoughtDate desc, OwnerKey desc, GroupKey desc) as [Rank]
    from PropertyOwners
    go
    declare @ownerKey int = 1
    select PropertyKey, BoughtDate, OwnerKey, GroupKey
    from #result as result
    where result.[Rank]=1
    and result.[OwnerKey]=@ownerKey
    go
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Join fact table with higher dimension level

    how do i join fact tables with higher dimension levels with discoverer?
    fact with detail at level C
    measure X
    dimension with
    D->C->B->A
    E->C
    level
    A B C
    1------1------1
    2------2------1
    3------2------1
    join between fact X and dimension level C
    X=3*C because of sum(X) in discoverer and 3xC in dimension
    is there a way to get correct values for X without creating a dimension like
    D->C
    E->

    another way of asking this is whether you can create a summary table in Discoverer at a higher level than a dimension's fundamental grain. In other words - the summary examples in the documentation all describe leaving out one or more of your dimensions... they are either left in or completely taken out. But, some of the most effective summarization occurs when you summarize daily data to a monthly level. Assuming that I have a sales table (at a daily level, and a key value sales_date), and a table date_dim (primary key sales_date), I would like to create a summary sales_month_summary where the sales are grouped on month_year (which is a field in the sales_date table).
    How is this done? I suspect that we can't use the date_dim table with the summary (due to the problems noted by the poster above). Do we have to create another table "month_dim"? Do we have to fold all of the desired date attributes (month, quarter, year) into the summary? Obviously we'd like to re-use all of the pertinent already existing date items (quarter, month, year, etc.), not recreate them over again, which would result in essentially two sets of items in the EUL. [One used for this month summary, and another used for the detail.]
    I searched the forum - someone asked this same question back in 2000 - there was no answer provided.
    The only other thought I have is to "snowflake" the date_dim into two tables and two folders, one at a date level, another at the month level. Then the detail tables can connect to date_dim (which is linked to month_dim), while the summary data can connect directly to month_dim.

  • JDBC MS Access--- cannot extract entry with null value with data type Meta

    I'm trying to extract a data entry with null value by using JDBC. The database is MS Access.
    The question is how to extract null entry with data type memo? The following code works when the label has data type Text, but it throws sqlException when the data type is memo.
    Any advice will be appreciated! thanks!
    Following are the table description and JDBC code:
    test table has the following attributes:
    Field name Data Type
    name Text
    label Memo
    table contents:
    name label
    me null
    you gates
    Code:
    String query = "SELECT name, label FROM test where name like 'me' ";
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next())
    String name = rs.getString("name");
    rs.getString("val");
    String label = rs.getString("label");
    System.out.println("\t"+name+"\t"+label);
    catch (SQLException ex)
    System.out.println(ex.getSQLState());
    System.out.println(ex.getErrorCode());
    System.out.println("in sqlexception");
    output:
    C:\Temp\SEFormExtractor>java DBTest
    yet SELECT name, label FROM test
    null
    0
    in sqlexception

    The question is how to extract null entry with data type memo?Okay, what you need to do is this:
    if (rs.getString("val") == null)
      // do something
    }This way, when it's a null value, you can check it first, and then handle it how you want, rather than getting an exception.

  • Joining a table with all_tab_columns

    How is it possible to join a table with the tab_columns?
    The query im trying to establish is that in my table they are 12 columns with months names. So under an input variable im trying to return the required values with the selected months. The only way i could think of to get the months to connect with the tab_columns table.
    Any suggestion is really appreciated
    SELECT bust,
    Sum(jan) JAN,
    Sum(feb) FEB,
    Sum(mar) MAR,
    Sum(apr) APR,
    Sum(may) MAY,
    Sum(jun) JUN,
    Sum(jul) JUL,
    Sum(aug) AUG,
    Sum(sep) SEP,
    Sum(oct) OCT,
    Sum(nov) NOV,
    Sum(DEC) DECC
    FROM budget a,all_tab_columns b
    WHERE vsl_code = 4602
    AND code = 1
    AND year=2013
    AND account_code='30'
    AND b.table_name='BUDGET'
    AND b.column_name IN
                         (SELECT column_name
                          FROM (SELECT Column_name, ROWNUM r
                                        FROM all_tab_columns b
                                        WHERE table_name = 'BUDGET'
                                        AND Column_id BETWEEN 3 AND 14
                                        ORDER BY column_id)
                          WHERE r BETWEEN 2 AND 3 ) --Returns February,March
    group by bust;

    Sorry, I don't understand what you're trying to do or why you think you need to join to all_tab_columns. Perhaps you could post the definition of the budget table, some sample data, and the results you're hoping to see.
    Without that, I don't see why you can't just do this:
    SELECT bust,   
    Sum(jan) JAN,   
    Sum(feb) FEB,   
    Sum(mar) MAR,   
    Sum(apr) APR,  
    Sum(may) MAY,  
    Sum(jun) JUN,   
    Sum(jul) JUL,   
    Sum(aug) AUG,   
    Sum(sep) SEP,   
    Sum(oct) OCT,  
    Sum(nov) NOV,   
    Sum(DEC) DECC  
    FROM budget a
    WHERE vsl_code = 4602  
    AND code = 1  
    AND year=2013  
    AND account_code='30' 
    group by bust;

  • Range interval partitioning with null value

    Hello,
    I have question, how can I create table with partition and after that I will insert null value in the partition key like this kind of
    range interval partitioning with null value.
    I have Oracle 11g.
    Thanks
    Mohammed

    user13777053 wrote:
    Thank you, but my question is about range interval not for range?http://docs.oracle.com/cd/E11882_01/server.112/e25523/partition.htm#VLDBG00220
    A MAXVALUE literal can be defined for the highest partition. MAXVALUE represents a virtual infinite value that sorts higher than any other possible value for the partitioning key, *including the NULL value.*
    So since you're trying to partition by interval (which doesn't support a MAXVALUE clause) you're out of luck.
    There's probably fancy hacks and what not you could try to implement, but i'm not about to recommend any of those here :)
    Cheers,

  • Joining 3 tables with similar structure

    Hello all,
    I'm executing sql queries in oracle 10g.
    I want to join 3 tables into a single new table containing all the records from the 3 individual tables. The balance should be Summed up whereever the reg_id is duplicated between the 3 tables, such that there is just one entry per reg_id with the summed balance in my new table.
    Sample data ( similar tables, with different values ) . tables : temp1, temp2, temp3
    reg_id | balance
    92603013     183.77
    92611902     419.46
    92766121     77.04
    93527720     24.84
    93581368     120.09
    93684684     89.88
    92611902     113.66
    93898873     52.19
    93911192     53.93
    93939027     89.88
    93684684     152.58
    Appreciate if someone can help me with the syntax.
    thanks in advance

    Hi,
    Maybe this is what you want:
    CREATE TABLE  temp123  AS
    WITH  union_of_all_3  AS
        SELECT  reg_id
        ,       balance
        FROM    temp1
    UNION ALL
        SELECT  reg_id
        ,       balance
        FROM    temp2
    UNION ALL
        SELECT  reg_id
        ,       balance
        FROM    temp3
    SELECT    reg_id
    ,         SUM (balance)  AS balance
    FROM      union_of_all_3
    GROUP BY  reg_id
    ;If that's not it, then post INSERT statments for each of the 3 original tables, and the contents of the new table after it is populated.

  • How to transfer database table contain null values, primary key, and foreign key to the another database in same server. using INSERT method.

    how to transfer database table contain null values, primary key, and foreign key to the another database in same server. using INSERT method.  thanks

    INSERT targetdb.dbo.tbl (col1, col2, col3, ...)
       SELECT col1, col2, col3, ...
       FROM   sourcedb.dbo.tbl
    Or what is your question really about? Since you talke about foreign keys etc, I suspect that you want to transfer the entire table definition, but you cannot do that with an INSERT statement.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • To overcome column with null value-urgent

    hai all,
    when i query i get column with null value.
    how to solve it?
    thank in advance.
    rcs
    SQL> DESC SCOTT.CB1;
    Name Null? Type
    ID NUMBER
    SUPCODE NUMBER
    SUPLNAME VARCHAR2(100)
    NAME VARCHAR2(100)
    ITEMCODE VARCHAR2(10)
    RECDOC NUMBER
    RECDATE VARCHAR2(10)
    TOTVALUE NUMBER
    QTY NUMBER
    CB_IPNO NUMBER
    CB_VNNO NUMBER
    CB_VDT VARCHAR2(10)
    CB_AMT NUMBER
    RECDOC_GR VARCHAR2(30)
    RECDATE_GR DATE
    SUPCODE_GR VARCHAR2(10)
    TABLE LOOK LIKE THIS (NOT ALL DATA IN SAME ROW, BECUSE I INSERTED LAST 3 COLUMN VALUES):
    ID     SUPCODE     SUPLNAME     NAME     ITEMCODE     RECDOC     RECDATE     TOTVALUE     QTY     CB_IPNO     CB_VNNO     CB_VDT     CB_AMT     RECDOC_GR     RECDATE_GR     SUPCODE_GR
    2015               AAAA                04117     9083          10545.6     78                                   
    2016               BBBB                    04609     9087          25200     3600                                   
    2017               GGGG                    04609     9088          28175     4025                                   
    2018                                   36591371.64     2565017.27                                   
                                                                     00001/07-08     02/04/2007     14020362
                                                                     00002/07-08     02/04/2007     14020362
                                                                     00003/07-08     02/04/2007     14010254
                                                                     00004/07-08     02/04/2007     14010254
                                                                     00005/07-08     02/04/2007     14021458
    SQL> SELECT DISTINCT ID, SUPCODE_GR, NAME, ITEMCODE, RECDOC, RECDATE_GR, TOTVALUE, QTY FROM SCOTT.CB
    1;
    ID SUPCODE_GR
    NAME
    ITEMCODE RECDOC RECDATE_G TOTVALUE QTY
    1
    PRO.AT.ALU.POWDER UNCOATED
    04609 15 51975 7425
    2
    PEN, GEL PEN
    07969 17 154 11
    ID SUPCODE_GR
    I NEED RESULT AS FOLLOWS (ALL RESPECTIVE DDATA IN ONE LINE NOW NOT LIKE THAT):
    ID     SUPCODE     SUPLNAME     NAME     ITEMCODE     RECDOC     RECDATE     TOTVALUE     QTY     CB_IPNO     CB_VNNO     CB_VDT     CB_AMT     RECDOC_GR     RECDATE_GR     SUPCODE_GR
    2015               AAAA                04117     9083          10545.6     78                         00001/07-08     02/04/2007     14020362                              
    ============

    Even accounting for the formatting, I'm not sure I even understand the question. It could be any number of different problems or non-problems.

  • Pro*C & SQLDA with NULL value for predicate column

    Hi: I am using a C program to update a table via a dynamic sql (method 4) and SQLDA. In the update statement predicate, I have place holders (as in TBLCOL=:C000). One of the columns in the predicate contains null values, so I set L[n] = 0, V[n] = pData (which pData[0] = '\0'), *(I[n]) = -1, and T[n] = 5 (for text). I cannot find the row that I know is there.
    I cannot change my statement to contain TBLCOL IS NULL, since I don't know ahead of time if I'm looking for rows with null values for this column. The Pro*C manual says that by setting the appropriate *(I[n]) = -1, it indicates to Oracle to simulate the "IS NULL" clause, and update the appropriate rows. In my case, I receive 1403 as SQLCODE when I use TBLCOL=:C000 vs TBLCOL IS NULL. What am I doing wrong? Thank you for your help.

    You should include these columns as well;
    ChangeType (see mxi_changetype)
    ValOwner (repository)
    UserID ("jobid=<>", usermskey, GUI (mmc), DG (dyngrp), reconcile)
    IdAudit  (This is the event task (add and del member for assignments)
    ParentAuditId (AuditID of parent which last updated the attribute, not consistent)
    ChangedBy (Holds the MSKEY of the user which last changed the attribute)
    ExpiryTime
    to make sure you get a fuller picture of the audit record.
    Your selection does not cover all events and descriptions
    br,
    Chris

  • Need help with NULL values in Crosstables

    Hello everybody,
    I need some help with NULL values and crosstables. My issue is the following:
    I have a query (BW - MDX-Query) that gives me turnover measures for each month. In Crystal Reports I choose crosstable to display this whereby I put all month in columns and all turnover-measures in rows. Each month that has a value (measures are not empty) is chown in the crosstables rows. So far so good. The problem occures when there are month that actually have no values (measures are empty). In that case these months are not chown in columns. But I need CR to display these columns and show the value 0. How can I do that?

    Hi Frank,
    Cross tab shows the data based on your column and these column fields are grouped and based on the group it will show your summaries. 
    If there is no data for any of your group it will not display that group.  In this case you will have to create a standard report which should look like cross tab and to get zero values you need to write formulas .
    Example if you want to display Moth wise sales :
    if Month() = 01 Then
    sum() else 0
    Now this formula will check if your month is Jan, then it will sum up the values else it will display zero value. 
    This is possible only through standard report not with Cross Tab.
    Thanks,
    Sastry

  • How to create a dimension object in SAP BW Unv with Null value

    Hello,
    for query syncronisation task, I need a dimension object in my BW universe with NULL value. Does someone know, how to do it or if its possible?
    Regards,
    Thilo

    Hi Thilo,
    so the only common item is Material then - correct ?
    Query 1                                                                                Query 2
    Formulation (grouping of materials)                                                  (No counterpart)
    Material                                                                                Material
    dummy key figure (why?)                                                                Company Code
                                                                                    10 Keyfigure
    Is this something you regular have to do ? what about a MultiProvider ?
    did you try "merged dimensions" in the Web Intelligence Report ?
    Ingo

  • Left outer join 3 tables with where-statement

    Hi folks,
    I hope you can understand (and maybe solve) my problem.
    Generally I try to left outer join three tables. The third table is used for a WHERE-statement.
    The three table structures are the following:
    table 1 (user)   
    user1 | key
    table 2 (detail)  
    key | ID
    table 3 (header)
    ID | user2                 
    ...and I want to achieve the following structure (as example filled with data):
    user | key | ID
    |-----|----
    xy    | a    | 001
    xy    | b    | #
    z     | b     | #
    The clue ist the usage of the third table. I need the table to set user1 and user2 equal (WHERE) but there are two problems:
    1) Obviously I can't left outer join two tables with each other. In this case I already used the 'key' of table 1 to join it with the 'key' of table 2. So I can't left outer join the 'ID' of table 2 with the 'ID' of table 3. Error message that I can only left outer join a table once. Any proposals?
    2) I have to include a WHERE to equal user1 with user2. But I am not allowed to use the user2 from table 3 because of the left outer join.
    I tried this coding:
    SELECT auser1 akey b~id INTO TABLE itab FROM ( table1 AS a
      LEFT OUTER JOIN table2 AS b ON akey = bkey )
      LEFT OUTER JOIN table3 AS c ON bID = cID )
      WHERE auser1 = cuser2.
    I would really appreciate your help.
    Regards
    MrclSpdl

    IF you want to join a DB table with an internal table, you need to use the 'FOR ALL ENTRIES' statement.
    select dbfields
    into table itab2
    from dbtab
    for all entries in itab
    where dbfield1 = itab-field1.
    This will get you a second internal table with all the corresponding data for the first selection.  You can then join them with a loop through the first table and a read table on the second table (for 1 - 1 relation) or a nested loop statement on both tables (for 1 - N relation).  Make itab a hashed table when using read table with key, use a sorted table if you need to loop without key access.
    Regards,
    Freek

  • JDBC Receiver Adapter with Null Value

    HI,
    I have configured ID for JDBC Receiver. In my communication channel, I already check Integration of Empty String Values = Null Value. However, when I check the result from audit log, it still shows that SAP XI sends the null value to database. In my understanding, it should not send the field which has null value (It shouldn't be included in sql statement).
    I check this with other scenario. With the same check at Integration of Empty String Values = Null Value, it doesn't send null value to database. It happens only with my first scenario.
    Have anyone ever been through this before? Any suggestion please?
    Thanks,
    Pavin

    Hi,
    1. The occurrence is 0...1
    2. This is the first result with null value (Please see field Error)
    UPDATE EXPCRM_T_CustomerProfile SET RequestID=455, RecordNo=1, SAPCustomerCode=0001000344, Error=NULL, Status=2, UpdateDateTime=12/03/2008 13:45:03 WHERE (RequestID=455 AND RecordNo=1)
    Then, I change the option from Null Value to Empty string. This is the result.
    UPDATE EXPCRM_T_CustomerProfile SET RequestID=455, RecordNo=1, SAPCustomerCode=0001000344, Error=', Status=2, UpdateDateTime=12/03/2008 13:46:12 WHERE (RequestID=455 AND RecordNo=1)
    Field Error Change from NULL to '
    The expected result from me is that field Error should not exist at all. Please help.
    Thanks,
    Pavin

Maybe you are looking for

  • How to load  a dat file  data into CRM Application

    Hi, My sourcre file is .DAT File and I want load data in that .DAT file in CRM Application. Is it Possible? if yes then how. As this is urgent requirement please respond soon Thanks in Advance Raghu Edited by: 869619 on Aug 10, 2011 1:39 AM

  • Subcontracting Challan !!

    Hi, In subcontracting subsequent adjustment ( overuse/underuse) How do we supply more material to the vendor and how we take back  excess material from the vendor. How do we deal with such a situation  if subcontracting challan is to be made.Are we s

  • IDoc Message Type for VL09

    Hi,       Is there an IDoc message type for VL09 (Reverse Goods Issue) for Delivery. Do let me know please.       We are using an ECC 6.0 system (WebAS 700) Regards, Aditya

  • White blank or space problem  in URL

    Hi, when i passing the attribute name in the url. Sometimes url having spaces between the words that time it shows Error this is the following code for that duplicate button. In CO Homepage if("duplicate".equals(pageContext.getParameter(EVENT_PARAM))

  • Standalone player (projector) for Linux 64?

    I'm looking for a standalone player (projector) that will run on 64 bit linux (specifically ubuntu 11.04).  There was a projector included w/ v10 but it appears to be 32 bit only.  Is there or will there be a standalone player for linux 64?  I need t