Report PM Canu00B4t do it Left join

Hi!!!
I have the following agenda on which I need to make a report containing the following: number of notice, application for order, request offer, but asked whether a computer need not have even asked to appear on the list
this is my program:
I hope some one can help me.
Moderator message - Welcome to SCN.
Please note that there is a 2,500 character limit to posts. I advise you to close this post (mark it as solved) and resubmit it posting only the releavent portions of your code. This means at least removing the commented out code.
Also, Please read Please read "The Forum Rules of Engagement" before posting!  HOT NEWS!! and How to post code in SCN, and some things NOT to do... and [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers] before posting again.
Rob
Edited by: Rob Burbank on Jun 14, 2010 3:07 PM

Hi Mike,
I'm not sure of what I'm suggesting since I got no instance to test it, but I'm wondering if the OLAP Cube "MSP_Project_Timesheet" wouldn't contain all resources of the enterprise pool with assignments (and not only resources that already submitted
a timesheet) since it is a combination of the assignment timephased, resource timephased and EPM timesheet cubes.
Hope this helps.
Guillaume Rouyre - MBA, MCP, MCTS

Similar Messages

  • Report PM canu00B4t doit LEFT JOIN

    Hi!I have the following agenda on which I need to make a report containing the following: number of notice, application for order, request offer, but asked whether a computer need not have even asked to appear on the list
    this is my program:
    I hope some one can help me.
    REPORT ZPM_CV_BIT.
    TYPES: BEGIN OF struc_type,
    EQUNR TYPE AFIH-EQUNR,
    AUFNR TYPE AFIH-AUFNR,
    QMNUM TYPE AFIH-QMNUM,
    BANFN TYPE EKPO-BANFN,
    ANFNR TYPE EKPO-ANFNR,
    EBELN TYPE EKET-EBELN,
    NETPR TYPE EKPO-NETPR,
    END OF struc_type.
    DATA : TI_TYPE TYPE TABLE OF struc_type,
    wa_type TYPE struc_type.
    SELECT A~EQUNR A~AUFNR A~QMNUM
    K~BANFN K~ANFNR T~EBELN K~NETPR
    INTO CORRESPONDING FIELDS OF TABLE TI_TYPE
    FROM MCIPMIS AS M
    JOIN AFIH AS A ON A~EQUNR = M~EQUNR
    JOIN ANLA AS AN ON AN~BUKRS = M~BUKRS AND AN~ANLN1 = M~ANLNR AND AN~ANLN2 = M~ANLUN
    JOIN FLEET AS F ON F~OBJNR = M~OBJNR
    JOIN EBKN AS E ON E~AUFNR = A~AUFNR
    LEFT JOIN EKPO AS K ON K~BANFN = E~BANFN
    LEFT JOIN EKET AS T ON T~BANFN = E~BANFN
    JOIN EKKO AS KK ON K~EBELN = KK~EBELN.
    LOOP AT TI_TYPE INTO WA_TYPE. WRITE:
    WA_TYPE-EQUNR,
    WA_TYPE-AUFNR,
    WA_TYPE-QMNUM,
    WA_TYPE-BANFN,
    WA_TYPE-ANFNR,
    WA_TYPE-EBELN,
    WA_TYPE-NETPR.
    endloop.
    The result is:
    >EQUNR    AUFNR   QMNUM    BANFN      ANFNR      EBELN      NETPR
    >20001678 4000000 10000000 1700000000 6070000000 4710000315 6.00
    >20001678 4000000 10000000 1700000000 6070000000 6070000000 6.00
    >20001613 4000001 10000001 1700000001 6070000001 4710000651 7.00
    >20001613 4000001 10000001 1700000001 6070000001 6070000001 7.00
    >20001550 4000005 10000005 1700000005 6070000005 4710000268 11.00
    >20001550 4000005 10000005 1700000005 6070000005 6070000005 11.00
    The result I need:
    >EQUNR    AUFNR   QMNUM    BANFN      ANFNR      EBELN      NETPR
    >20001678 4000000 10000000 1700000000 6070000000 4710000315 6.00
    >20001613 4000001 10000001 1700000001 6070000001 4710000651 7.00
    >20001739 4000002 10000002 1700000002 6070000002
    >20001565 4000003 10000003 1700000003 6070000003
    >20001609 4000004 10000004 1700000004 6070000004
    >20001550 4000005 10000005 1700000005 6070000005 4710000268 11.00
    Moderator message - Please use code tags to format your code
    Edited by: Rob Burbank on Jun 15, 2010 12:36 PM

    Are you trying to select on a field in table B, other than something like
    IsNull({B.EmpId})
    If so, you'll only get the same results as an inner join, because NULLs never match "real values".  In other words, if you're trying to select on
    {B.DateWorked} between {?start date} and {?end date}
    then when {B.DateWorked} is NULL the condition will be false.
    HTH,
    Carl

  • How to do a left join to create a timesheet status report in Power View

    I am trying to create a very simple report in power view for Project Online. It's a timesheet status report that should show a list of resources, and the current status of their timesheet (in progress, not started, etc).
    In Excel, I created an odata connection with Resources and Timesheets, and set up the connection between them. So, I can now easily display a list of timesheets, and filter them by end date. Good. But this only displays rows where there is an existing timesheet.
    So resources who have not started a timesheet are not displayed. So, I need a "left join" in power view to display all resources, whether or not they have a timesheet for the period. (and, for the ones that do, I need to display fields from the timesheet,
    such as the status description.)
    Any suggestions?
    Mike G.

    Hi Mike,
    I'm not sure of what I'm suggesting since I got no instance to test it, but I'm wondering if the OLAP Cube "MSP_Project_Timesheet" wouldn't contain all resources of the enterprise pool with assignments (and not only resources that already submitted
    a timesheet) since it is a combination of the assignment timephased, resource timephased and EPM timesheet cubes.
    Hope this helps.
    Guillaume Rouyre - MBA, MCP, MCTS

  • Left Join In Webi Report

    Hi,
    I have a webi report wherein I use the custom SQL with left join. However when I run the query against the database( SQL Server 2005) I get the left  join to work . But when I run the report using the same SQL I do not see the left join implemented on the report .
    Wanted to have some guidance whether we do need to change anything on the Universe level/webi level to make the webi show the values with left join.  By default even after having custom sql I am seeing inner join.
    The procedures I have tried :
    Universe Level: In Paramters Tab: Set ANSI_SQL to yes  ( but it still does not work)
    Thank you,
    boe user

    Look at http://www.dagira.com/2010/08/17/handling-conditions-on-outer-joins/.
    Regards,
    Kuldeep

  • LEFT Join not working

    Hi guys,
    I am not sure why the left join is not working.. when I try to use the and condition out of the left join condition. The database is relational but the requirement is for reporting. I have 2 user inputs and I should get the query results as explained below..
    Let me explain with the sample data.
    Table 1: PRTYPE (P)
    TYPEID CLASSID
    T001 CLS001
    T001 CLS002
    T001 CLS003
    T002 CLS002
    T003 CLS001
    Table 2: EMPLOYEE (E)
    EMPID NAME
    E001 Joe
    E002 Mark
    E003 Lucy
    Table 3: DETAILS (D)
    EMPID CLASSID STATUS
    E001 CLS001 NEW
    E001 CLS002 DONE
    E002 CLS001 NEW
    E002 CLS004 NEW
    Report1:
    Input: PRTYPE.TYPEID = T001, EMPID = E001
    Output:
    E.NAME E.EMPID P.TYPEID A.CLASSID D.STATUS
    JOE EMP001 T001 CLS001 NEW
    JOE EMP001 T001 CLS002 DONE
    JOE EMP001 T001 CLS003 BLANK
    Report2:
    PRTYPE.TYPEID = T003, EMPID = E003
    E.NAME E.EMPID P.TYPEID A.CLASSID D.STATUS
    LUCY E003 T003 CLS001 BLANK
    LUCY E003 T003 CLS004 BLANK
    When I use and condition in left join itself, it works but when I take it to the end of the sql using where p.typeid= T001 and E.EMPID = E001 I am not getting the left join results... It looks like Oracle doesn't like the condition at the end. I hope I am clear on explaining. Please share your experience on how to get it working..
    Thank you

    Hi,
    Welcome to the forum!
    user12118328 wrote:
    I am not sure why the left join is not working.. when I try to use the and condition out of the left join condition. The database is relational but the requirement is for reporting. I have 2 user inputs and I should get the query results as explained below..
    When I use and condition in left join itself, it works but when I take it to the end of the sql using where p.typeid= T001 and E.EMPID = E001 I am not getting the left join results... It looks like Oracle doesn't like the condition at the end. I hope I am clear on explaining. Please share your experience on how to get it working..I'm not sure what you mean. Why don't you post your query? You know, it will be easier for someone to tell you what you're doing wrong if they know what you're doing.
    Are you saying that you get the correct results when you have a cerain condition in an outer join, but that you get the wrong results if you put the exact same condition in the WHERE-clause?
    If so, keep the condition where it does what you want.
    You can usually move INNER join conditions around like that, but never OUTER join conditions.
    As Alex said, if you want help, post executable statement to create and populate your tables with a little sample data, as well as the output you want from that sample data, and your best attempt at a query.

  • How to make a customize form with optional parameter and left join

    Hi,
    I am trying to make a report with a left join. I also want ot have optional parameters in it.
    I am using the Create Reports From SQL Query method:
    SQL is :
    select ename, sal
    from scott.emp left join scott.dept
    on scott.emp.deptno = scott.dept.deptno
    where sal >= :lower_sal
    and sal <= :higher_sal;
    However, if I do it this way, I those 2 parameters are not optional.... How can I make them optional?
    If I use the Create Reports From Query Wizard method, I can make the parameters optional, but then I cannot do the left join...
    Thanks,
    Wilson

    hi,
    to catch null values on both sides I use:
    where nvl(sal,0) >= nvl(:lower_sal,nvl(sal,0))
    and nvl(sal,0) <= nvl(:higher_sal,9999999999)
    otherwise there will be no rows in the report where the value of sal is null, even if there are no selection criteria entered.
    regards Michael

  • Does CFSQL Not Do Left Joins?

    Hello. The following syntax works fine inside a
    <CFQUERY> statement getting data from an ODBC database (where
    JobList and Reported are tables in the datasource named in the
    CFQUERY statement):
    select * from JobList j left join Reported r on j.job_no =
    r.jobno
    However, it does not work when embedded inside a
    <CFQUERY> statement trying to join two existing queries (i.e.
    dbtype = 'QUERY', where JobList and Reported are the names of the
    existing queries.
    Instead I receive the error message:
    Query Of Queries syntax error. Encountered "j.
    If I remove the j and r aliases and go with select * from
    JobList left join Reported on JobList.job_no = Reported.jobno, I
    receive the error message:
    Query Of Queries syntax error. Encountered "left
    It does not help matters to add the word 'outer' after the
    word 'left'.
    Should I be using a different syntax, or does CFSQL simply
    not do outer joins? The documentation says it does joins, but
    provided no examples.
    If CFSQL simply cannot to outer joins, am I stuck? The two
    tables to be joined ultimately reside in completely different DB's:
    FoxPro and SQL Server.
    Thanks for your help.

    Using
    joins - Q-of-Q
    Using joins
    A join operation uses a single SELECT statement to return a
    result set from multiple, related tables, typically those with a
    primary key - foreign key relationship. There are two SQL clauses
    that perform joins:
    WHERE clause ColdFusion supports joins through a WHERE
    clause.
    INNER JOIN and OUTER JOIN ColdFusion
    does not support joins through INNER JOIN or OUTER JOIN
    clauses.
    Note: Query of Queries supports joins between two tables
    only.
    FYI, you can sometimes accomplish your OUTER JOINs by using
    UNIONs as a work around.
    Phil

  • Left joins : Case or if statement

    Hi
    I want to know if one can build in a case or if statement into a left join. I want to multiply a value with -1 if the condition is met.

    I think it is not possible in SELECT statement...but you can do the below to resolve it.
    add a field for FKART in your internal table.
    TYPES: BEGIN OF tab ,
           kunag LIKE vbrk-kunag,
           fkdat like vbrk-fkdat,
           matnr LIKE vbrp-matnr,
           werks LIKE vbrp-werks,
           fkart like vbrk-fkart,
           volum LIKE vbrp-volum,
           END OF tab.
    DATA: wa_outtab TYPE table of tab WITH HEADER LINE.
    SELECT akunag  afkdat
           bmatnr bwerks a~fkart
           SUM( b~volum )
       INTO  table wa_outtab
    FROM vbrk AS a
    INNER JOIN vbrp AS b
          ON  avbeln  = bvbeln
    WHERE
    avbeln = bvbeln                                                                               
    AND ( afkart LIKE 'F2' OR afkart LIKE 'RE' )
    GROUP BY  akunag afkdat bmatnr bwerks a~fkart.
    sort wa_outtab.
    Loop at wa_outtab.
      if wa_outtab-fkart = 'RE'.
        lpos = lpos +  wa_outtab-volum.
      else.
        lneg = lneg +  wa_outtab-volum.
      endif.
      at end of werks.
         lvaule = lpos - lneg.
        lpos = lneg = 0.
      endat.
    endloop.

  • Left Join query: revisited... I have to explain at user meeting tomm. pls..

    Hi Everyone,
    Can someone pls shed some light on the situation below
    I am understanding alot of what Michael and Rod wrote.... with my prev. post of LEFT JOIN and testing for
    not null and doing a double Boolean OR etc.
    - but- AM NOT understanding why the IS NOT NULL works, without the double boolean OR
    Pls help... have to explain what left join means to user tomm. I'm going to demo the query below and
    not the one with the double boolean OR bec. maybe too much info to present at one sitting. tx, sandra
    =====================
    the query below is left joining the STUDENT table to
    HOLD table.
    The HOLD table - contains rows for students who have holds on their record.
    a student can have more than one hold (health, HIPAA, basic life saving course)
    BUT, for this query: I'm only interested that a hold exists, so I'm choosing MAX on hold desc.
    Selecting a MAX, helps me, bec. it reduces my join to a 1 to 1 relationship, instead of
    1 to many relationship.
    Before I posted this thread at all, the LEFT JOIN below testing for IS NOT NULL worked w/o
    me having to code IS NOT NULL twice....
    Is that because, what's happening "behind the scenes" is that a temporary table containing all max rows is being
    created, for which Discoverer has no predefined join instructions, so it's letting me do a LEFT JOIN and have
    the IS NOT NULL condition.
    I would so appreciate clarification. I have a meeting on Tues, for which I have to explain LEFT JOINS to the user
    and how they should create a query. I need to come up with rules.
    If I feel "clear", I asked my boss to buy Camtasia videocast software to create a training clip for user to follow.
    Also, if any Banner user would like me to email the DIS query to run on their machine, I would be glad to do so.
    thx sooo much, Sandra
    SELECT O100384.ACADEMIC_PERIOD, O100255.ID, O100384.ID, O100255.NAME, O100384.NAME, O100255.PERSON_UID, O100384.PERSON_UID, MAX(O100255.HOLD_DESC)
    FROM ODSMGR.HOLD O100255, ODSMGR.STUDENT O100384
    WHERE ( ( O100384.PERSON_UID = O100255.PERSON_UID(+) ) ) AND ( O100384.ACADEMIC_PERIOD = '200820' )
    GROUP BY O100384.ACADEMIC_PERIOD, O100255.ID, O100384.ID, O100255.NAME, O100384.NAME, O100255.PERSON_UID, O100384.PERSON_UID
    HAVING ( ( MAX(O100255.HOLD_DESC(+)) ) IS NOT NULL )
    ORDER BY O100384.NAME ASC

    Hi,
    OK, I will try to explain this. When you outer join table B to table A then the rows in table A which do not match any rows in table B will returned with NULL in the columns from the table B.
    Oracle uses the syntax ( +) for outer joins. Now if you add another condition using the ( +) syntax (as shown below) the condition will be processed before the table is joined. Therefore if table A does not match any rows in table B which have col2=1 then the row from table A will be returned with NULLs for the table B columns.
    SELECT A.col1, B.col1
    FROM A, B
    WHERE A.col1 = B.col1( +)
    AND B.col2( +)=1
    Now, if the condition B.col2=1 was used instead then the condition would be processed after the join and therefore the rows from table A that were joined to table B but did not meet the condition would not be returned by the query.
    This applies to a WHERE clause and to the HAVING clause, but with one exception. If you use the ( +) within a group function in a HAVING clause then the ( +) will have no affect because the condition must be processed after group by and group by can only be processed after the join. Therefore MAX(B.col2( +)) = 1 is processed after the join even through it uses the ( +) syntax.
    You cannot use an OR or an IN with the ( +) syntax because the meaning of the OR in this situation is ambiguous, is the OR done before or after the join. A query with an OR or IN in an outer will fail with an Oracle ORA-01719 error. Discoverer recognises this situation and removes the ( +) so that the error does not occur. However, without the ( +) the conditions are processed after the join.
    Using the ( +) with IS NULL, e.g. col2( +) IS NOT NULL works in the same way. You just have to remember that the col2( +) could be NULL as a result of the outer join and therefore if the condition is processed after the query then the IS NOT NULL will remove the outer joined rows.
    Hope that is clear.
    Rod West

  • Left joins on multi-million rows

    i have a simple query doing left joining on several tables, upward of 7 tables. each table has several hundred million rows.
    tblA is 1:M tblB and tblB is 1:M tblC and so on.
    how to tune a query liked that?
    sample query is
    select distinct
    a.col,b.col,c.col
    from tblA a left join tblB b
    on a.id=b.id
    and a.col is not null
    left join tblC
    on b.id=c.id
    and c.col > criteria
    thanks.

    hi
    a simple query is liked
    SELECT my_DEP.description,
    my_DEP.addr_id,
    hundredRowsTbl.address,
    5MillTbl.checkin_TIME,
    5MillTbl.checkout_TIME,
    hundredRowsTbl.ID2,
    5MillTbl.ID,
    5MillTbl.col2,
    my_DEP.col3,
    5MillTbl.col13,
    hundreds.desc,
    50mmTbl.col6,
    50mmTbl.col5,
    5MillTbl.col33
    FROM
    my.5MillTbl 5MillTbl
    LEFT OUTER JOIN
    my.50mmTbl 50mmTbl
    ON 5MillTbl.ID = 50mmTbl.ID
    LEFT OUTER JOIN my.hundreds hundreds
    ON 5MillTbl.banding =
    hundreds.banding
    INNER JOIN my.my_DEP my_DEP
    ON 5MillTbl.organization_ID = my_DEP.organization_ID
    INNER JOIN my.my_40millTbl
    ON 5MillTbl.seqID = my_40millTbl.seqID
    LEFT OUTER JOIN my.hundredRowsTbl hundredRowsTbl
    ON my_DEP.addr_id = hundredRowsTbl.ID2
    LEFT OUTER JOIN my.30millTbl 30millTbl
    ON my_DEP.organization_ID = 30millTbl.dept_id
    WHERE 1=1
    AND 5MillTbl.ID IS NOT NULL
    AND ( 5MillTbl.checkout_TIME >= TO_DATE ('01-01-2009 00:00:00', 'DD-MM-YYYY HH24:MI:SS')
    AND 5MillTbl.checkout_TIME <TO_DATE ('12-31-2010 00:00:00', 'DD-MM-YYYY HH24:MI:SS')
    AND ( 5MillTbl.col2 IS NULL
    OR NOT (5MillTbl.col2 = 5
    OR 5MillTbl.col2 = 6)
    AND 5MillTbl.ID IS NOT NULL
    AND 30millTbl.TYPE= '30'
    AND my_DEP.addr_id = 61

  • Left join (+) instead of "not in"

    Hi all!
    I've got statement with "where dig not in (840, 978)" string.
    How do I write statement without "not in" ?
    I thought about left join and "is not null", but don't know exactly how to use it.
    Any ideas?
    Thanks ahead.

    Here is my solution:
    select d.* from
    (select 111 as accountno, 840 as currencyid from dual
    union all
    select 222 as accountno, 978 as currencyid from dual
    union all
    select 333 as accountno, 826 as currencyid from dual ) d ,
    (select 840 as dig from dual
    union all
    select 978 as dig from dual ) j
    where d.currencyid = j.dig(+)
    and j.dig is null
    Thanks to all.

  • Testing for IS NOT NULL with left join tables

    Dear Experts,
    The query is showing the NULL rows in the query below....
    Any ideas, advice please? tx, sandra
    This is the sql inspector:
    SELECT O100321.FULL_NAME_LFMI, O100321.ID, O100404.ID, O100321.ID_SOURCE
    , O100404.NAME, O100321.PERSON_UID, O100404.PERSON_UID, O100404.VISA_TYPE
    FROM ODSMGR.PERSON O100321
    , ODSMGR.VISA O100404
    WHERE ( ( O100321.PERSON_UID = O100404.PERSON_UID(+) ) ) AND ( O100404.VISA_TYPE(+) IS NOT NULL )

    Hi Everyone,
    I am understanding alot of what Michael and Rod wrote.... I am just puzzled over the following:
    the query below is left joining the STUDENT table to
    HOLD table.
    The HOLD table - contains rows for students who have holds on their record.
    a student can have more than one hold (health, HIPAA, basic life saving course)
    BUT, for this query: I'm only interested that a hold exists, so I'm choosing MAX on hold desc.
    Selecting a MAX, helps me, bec. it reduces my join to a 1 to 1 relationship, instead of
    1 to many relationship.
    Before I posted this thread at all, the LEFT JOIN below testing for IS NOT NULL worked w/o
    me having to code IS NOT NULL twice....
    Is that because, what's happening "behind the scenes" is that a temporary table containing all max rows is being
    created, for which Discoverer has no predefined join instructions, so it's letting me do a LEFT JOIN and have
    the IS NOT NULL condition.
    I would so appreciate clarification. I have a meeting on Tues, for which I have to explain LEFT JOINS to the user
    and how they should create a query. I need to come up with rules.
    If I feel "clear", I asked my boss to buy Camtasia videocast software to create a training clip for user to follow.
    Also, if any Banner user would like me to email the DIS query to run on their machine, I would be glad to do so.
    thx sooo much, Sandra
    SELECT O100384.ACADEMIC_PERIOD, O100255.ID, O100384.ID, O100255.NAME, O100384.NAME, O100255.PERSON_UID, O100384.PERSON_UID, MAX(O100255.HOLD_DESC)
    FROM ODSMGR.HOLD O100255, ODSMGR.STUDENT O100384
    WHERE ( ( O100384.PERSON_UID = O100255.PERSON_UID(+) ) ) AND ( O100384.ACADEMIC_PERIOD = '200820' )
    GROUP BY O100384.ACADEMIC_PERIOD, O100255.ID, O100384.ID, O100255.NAME, O100384.NAME, O100255.PERSON_UID, O100384.PERSON_UID
    HAVING ( ( MAX(O100255.HOLD_DESC(+)) ) IS NOT NULL )
    ORDER BY O100384.NAME ASC

  • Urgent help required regarding reports Arabic Characters (Right to Left)

    Hello Members
    I am facing problem while deploying oracle reports on application server (Forms & Reports). I am using Developer Suite 10g 10.1.2.0.2 and same version of Application Server on Windows Environment. I have some fields in Arabic and some are in English. The reports output is in PDF format. I am also using PDF Subset fonts feature to subset the Arabic font problem.
    Now the problem which I cannot is that I wanted that PDF generate report read Right to Left only for some specific fields not all fields. For example the following fields displayed as
    395/دمام (Actually reading left to right and same saved in database)
    But I wanted to be numbers are displayed first and then arabic word (dammam) while reading right to left.
    My NLS_settings on developer suite and application server is “AMERICAN_AMERICA.AR8MSWIN1256”
    When I am changing the nls_settings to “ARABIC_SAUDI ARABIA.AR8MSWIN1256”. It convert the whole report layout from righ to left and then it is not reading well the English fields i.e. left to right.

    The problem was solved by changing
    REPORTS_BIDI_ALGORITHM=UNICODE
    REPORTS_ARABIC_NUMERAL=ARABIC
    But now i have another issue that i wanted to display one filed with REPORTS_ARABIC_NUMERAL=ARABIC and second with REPORTS_ARABIC_NUMERAL=HINDI. During my all search i found that this is applied on Report wise and we cannot set for one filed.
    Would any body will help me to change REPORTS_ARABIC_NUMERAL for one field at runtime or design time either changing the registry value or any configuration file of application server ?

  • How to generate a query involving multiple tables(one left join others)

    Hi, all,
    I want to query a db like these:
    I need all the demographics information(from table demo) and their acr info(from table acr), and their clinical info(from table clinical), and their lab info(from table lab).
    The db is like this:
    demo->acr: one to many
    demo->clinical info: one to many
    demo->lab info: one to many
    I want to get one query result which are demo left join acr, and demo left join clinical, and demo left join lab. I hope the result is a record including demo info, acr info, clinical info, and lab info.
    How could I do this in SQL?
    Thanks a lot!
    Qian

    Thank you very, very much!
    Actually, I need a huge query to include all the tables in our db.
    We are running a clinical db which collects the patients demographics info, clinical info, lab info, and many other information.
    The Demographics table is a center hub which connects other tables. This is the main architecture.
    My boss needed a huge query to include all the information, so others could find what they need by filtering.
    As you have found, because one patients usually has multiple clinical/lab info sets, so the result will be multiplied! the number of result=n*m*k*...
    My first plan is to set time point criteria to narrow all the records with one study year. If somebody needs to compare them, then I have to show them all.
    So I have to know the SQL to generate a huge query including as many tables as possible.
    I show some details here:
    CREATE TABLE "IMMUNODATA"."DEMOGRAPHICS" (
    "SUBJECTID" INTEGER NOT NULL,
    "WORKID" INTEGER,
    "OMRFHISTORYNUMBER" INTEGER,
    "OTHERID" INTEGER,
    "BARCODE" INTEGER,
    "GENDER" VARCHAR2(1),
    "DOB" DATE,
    "RACEAI" INTEGER,
    "RACECAUCASIAN" INTEGER,
    "RACEAA" INTEGER,
    "RACEASIAN" INTEGER,
    "RACEPAC" INTEGER,
    "RACEHIS" INTEGER,
    "RACEOTHER" VARCHAR2(50),
    "SSN" VARCHAR2(11),
    PRIMARY KEY("SUBJECTID") VALIDATE
    CREATE TABLE "IMMUNODATA"."ACR" (
    "ID" INTEGER NOT NULL,
    "THEDATE" DATE ,
    "SUBJECTID" INTEGER NOT NULL,
    "ACR_PAGENOTCOMPLETED" VARCHAR2(1000) ,
    "ACR_MALARRASHTODAY" INTEGER ,
    "ACR_MALARRASHEVER" INTEGER ,
    "ACR_MALARRSHEARLIESTDATE" DATE ,
    PRIMARY KEY("ID") VALIDATE,
    FOREIGN KEY("SUBJECTID") REFERENCES "IMMUNODATA"."DEMOGRAPHICS" ("SUBJECTID") VALIDATE
    CREATE TABLE "IMMUNODATA"."CLIN" (
    "ID" INTEGER NOT NULL,
    "THEDATE" DATE ,
    "SUBJECTID" INTEGER NOT NULL,
    "CLIN_PAGENOTCOMPLETED" VARCHAR2(1000) ,
    "CLIN_FATIGUE" VARCHAR2(20) ,
    "CLIN_FATIGUEDATE" DATE ,
    "CLIN_FEVER" VARCHAR2(20) ,
    "CLIN_FEVERDATE" DATE ,
    "CLIN_WEIGHTLOSS" VARCHAR2(20) ,
    "CLIN_WEIGHTLOSSDATE" DATE ,
    "CLIN_CARDIOMEGALY" VARCHAR2(20) ,
    PRIMARY KEY("ID") VALIDATE,
    FOREIGN KEY("SUBJECTID") REFERENCES "IMMUNODATA"."DEMOGRAPHICS" ("SUBJECTID") VALIDATE
    Other tables are alike.
    Thank very much!
    Qian

  • How can I add left join in the coding

    I intend to dynamic add left jion in my java class.
    so I write the coding like below:
    incident_id = svc_yokyu_id(+)
    (Both of them have been selected in the select sentence.)
    However, when I run the app, it will throw a sql error.(ora-01416)
    then I copy the error sql sentence and try to test it
    QRSLT WHERE (incident_id = svc_yokyu_id(+))--this is a error sql sentence.
    Finding that if I delete the left join,(+), the sql will run right,
    or I modify the sql like
    QRSLT WHERE incident_id in (Select svc_yokyu_id from xxfm_srl_sr_jc_relation xssjr where incident_id = xssjr.svc_yokyu_id(+)) , it run right as well.
    according to bussiness requestion, I can't write the coding like above,
    so, i don't know how to implement it.
    and i hope to your advice. thx

    Does a hand come out of the screen, grabbing you by the wrist, every time you try?
    Just guessing…
    Peter

Maybe you are looking for