Using select * in a join statement

Ok Wizards,
If I use this code: (select * from tablea a, tableb b where a.index = b.index) joined, I can reference any column in either table using joined.column except a column named in both tables. If both tables contained a columnxyz, any reference to joined.columnxyz returns an error. Must be a naming convention this newbie is unaware of (among many other things). Your wisdom and patience are greatly admired.

You are right SomeoneElse,
Natural join doesn't necessarily apply unless you're using stricts naming conventions.
You could use following syntax:
select * from scott.emp join scott.dept on emp.deptno = dept.deptno;
But we're back to the beginning, i.e we can't referefence deptno - it gives an error as in
select deptno from (
select * from scott.emp join scott.dept on emp.deptno = dept.deptno
So forget about my second sugestion
You could always create a view on the 2 tables joined together if you absolutely want to use *.
Regards,

Similar Messages

  • What is USING SELECTION-SET in submit statement?

    hi,
    any body can tel me.
    SUBMIT rptedt00
                      USING SELECTION-SET 'HRESS_TEDT00'
                      WITH pnppernr-low EQ i_pernr
                      WITH pnptimr6     EQ 'X'
                      WITH pnpbegda     EQ i_begda
                      WITH pnpendda     EQ i_endda
                      TO SAP-SPOOL
                      SPOOL PARAMETERS ls_params
                      WITHOUT SPOOL DYNPRO
                      AND RETURN.
    here use of USING SELECTION-SET  and which name we have to specify in quotes.
    Regards,
    Shankar.

    Hi
    USING SELECTION-SET <var>
    This addition tells the system to start the called program with the variant var
    You specify the variant in the quotes.
    Check the below links
    http://help.sap.com/saphelp_nw04s/helpdata/en/9f/dba51a35c111d1829f0000e829fbfe/frameset.htm
    regarding calling another program from current report
    Hope this helps
    Regards
    Shilpa

  • Using CASE in the join statement in the AND clause. Where's the problem?

    All,
    I have my code, where based on the case statement, I would like to restrict the number of records in my JOIN condition. It's the CASE statement that I have used, that's giving me the problem. Not sure, what the problem is. The error says (in my case expression):
    Msg 102, Level 15, State 1, Line 59
    Incorrect syntax near '>'.
    Select a.Col1, a.Col2, b.Col1, b.Col2, b.Col3
    From Table1 a
    Join Table2 b
    On a.id = b.id
    Join Table3 c
    On c.FiltId = a.FiltId
    And
    Case
    When b.Col3 <> 5 --b.Col3 is an INT field
    Then (b.OutDate >= DATEADD(DAY, -30, c.InsertDate) And b.OutDate <= DATEADD(DAY, 30, c.InsertDate))
    When b.Col3 = 5
    Then (b.InDate >= DATEADD(DAY, 5, c.InsertDate))
    End
    Join Table 4 -- Other Join conditions and where clause conditions

    You do not know the CASE is an expression and fields are not columns. This is fundamental and probably means that a lot of your code needs work. 
    You can probably re-write the query with something like this: 
    SELECT A.col1, A.col2, B.col1, B.col2, B.col3
      FROM Table_1 AS A, Table_2 AS B, Table_3 AS C
     WHERE A.generic_id = B.generic_id
       AND C.foobar_id = A.foobar_id
       AND CASE
           WHEN B.col3 <> 5 
                AND (B.something_out_date 
                     <= DATEADD(DAY, -30, C.something_insertion_date) 
           THEN 'T'
           WHEN B.col3 = 5 
                AND (B.something_out_date 
                    >= DATEADD(DAY, -30, C.something_insertion_date) 
           THEN 'T'
           ELSE 'F' END = 'T' ;
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to use SELECT statement  to extract KNA1-NAME1 and KNB1-ZSABE

    In building table I_KNA1 in  form f_extract_data, an additional select statement is needed to select and  append datafrom (KNA1 and KNB1) to existing I_KNA1
    In form f_extract_data table i_kna1 is populated with data from zd_kna101.(where ZD_KNA101 is a view of KNA1, KNB1 and KNBK.  It's a joint of these three tables.)  This will take care of all customers with KNBK-BANKL and KNBK-BANLN populated.  But this does not include new customers created in SAP CRM (no KNBK records).  Therefore a separate SELECT statement is needed to extract KNA1-NAME1 and KNB1-ZSABE for customers created in SAP CRM(the customers who do do not have BANKL and BANKN). These selected records are then need to be appended to I_KNA1.  It's possible that new selection statement might extract records that are already in existing I_KNA1 table.  IF this is the case, right after the append, sort I_KNA1 and remove duplicate records.
    form f_extract_data.
    select kunnr                         " Customer Number
             name1                         " Name
             zsabe                         " Business Unit
             bankl                         " Legacy Bank Key
             bankn                         " Legacy Bank Account
        from zd_kna101                     " View of KNA1, KNB1, and KNBK
        into table i_kna1
        for all entries in i_doc_by_ref
       where kunnr = i_doc_by_ref-kunnr
        and zsabe in s_zsabe.           
      if sy-subrc <> 0.
        message a116 with 'customer'.  " Customer Table is empty.  HALT!!!
      else.                                                    
        sort i_kna1 by kunnr.                                  
      endif.
    will I have to use the join statement(for KNA1-NAME1 and KNB1-ZSABE using the key as KUNNR) here or give two seperate select statements for extracting data from KNA1 and KNB1 using the key as KUNNR.
    THANKS FOR THE HELP.

    I would suggest using the join on KUNNR.  Maybe something like this.
    data: begin of itab occurs 0,
          kunnr type kna1-kunnr,
          name1 type kna1-name1,
          ZSABE type knb1-ZSABE,
          end of itab.
        select kna1~kunnr kna1~name1 knb1~zsabe
               into table itab
                    from kna1
                       inner join knb1
                            on kna1~kunnr = knb1~kunnr
                                   where ........
    Regards,
    Rich Heilman

  • Using offset in join statement

    hi,
    i wanted to use offset in join statement. but it is giving error.
    select a~kunnr
              a~vkorg
             from knvv as inner join zcust
             on knvv-kunnr+5(5) = zcust-refid.

    hi neha,
    try this code i tested it.
    types: begin of ty_knvv,
           INCLUDE type knvv,
           kunid type i, " For u type is zcust-refid
           end of ty_knvv.
    data: it_knvv type STANDARD TABLE OF ty_knvv INITIAL SIZE 0,
          wa_knvv type ty_knvv.
    select *
      from knvv
        into table it_knvv.
    loop at it_knvv into wa_knvv.
      kunid = wa_knvv-kunnr+5(5).
      wa_knvv-kunid = kunid.
      MOdify it_knvv TRANSPORTING kunid.
      read table zcust into wa_zcust with key resid = wa_knvv-kunid.
    endloop.

  • How to avoid data repetation when using select statements with innerjoin

    how to avoid data repetation when using select statements with innerjoin.
    thanks in advance,
    satheesh

    you can use a query like this...
      SELECT DISTINCT
             frg~prc_group1                  "Product Group 1
             frg~prc_group2                  "Product Group 2
             frg~prc_group3                  "Product Group 3
             frg~prc_group4                  "Product Group 4
             frg~prc_group5                  "Product Group 5
             prc~product_id                  "Product ID
             txt~short_text                  "Product Description
    UP TO 10 ROWS
    INTO TABLE l_i_data
    FROM
    Joining CRMM_PR_SALESG and
    COMM_PR_FRG_ROD
    crmm_pr_salesg AS frg
    INNER JOIN comm_pr_frg_rod AS prd
    ON frgfrg_guid = prdfragment_guid
    Joining COMM_PRODUCT and
    COMM_PR_FRG_ROD
    INNER JOIN comm_product AS prc
    ON prdproduct_guid = prcproduct_guid
    Joining COMM_PRSHTEXT and
    COMM_PR_FRG_ROD
    INNER JOIN comm_prshtext AS txt
    ON prdproduct_guid = txtproduct_guid
    WHERE frg~prc_group1 IN r_zprc_group1
       AND frg~prc_group2 IN r_zprc_group2
       AND frg~prc_group3 IN r_zprc_group3
       AND frg~prc_group4 IN r_zprc_group4
       AND frg~prc_group5 IN r_zprc_group5.
    reward it it helps
    Edited by: Apan Kumar Motilal on Jun 24, 2008 1:57 PM

  • Using select stat.

    Hi,
    How can I use select stat. rather than join to join to tables so that I have all the fields from both tables appearing in my output.

    Hi,
    There are two ways to handle the problem.
    1. For all entries
    Types: begin of str1_tab,
    lgnum type lgnum,
    ivnum type LVS_IVNUM,
    ivpos type LVS_IVPOS,
    lgtyp type lgtyp,
    lgpla type lgpla,
    idatu type LVS_IDATU,
    uname type LINK_UNAME,
    end of str1_tab.
    Data: it_tab1 type table of str1_tab,
    wa_tab1 like line of it_tab1.
    DATA: it_tab3 TYPE TABLE OF str1_tab,
    wa_tab3 LIKE LINE OF it_tab3.
    select lgnum ivnum lgtyp uname FROM link INTO CORRESPONDING FIELDS OF
    TABLE it_tab1 where lgnum = pa_lgnum AND ivnum IN s_ivnum.
    <b>if sy-subrc eq 0.</b>
    select lgnum ivnum lgpla idatu from linp into corresponding
    fields of table it_tab3 for all entries in it_tab1 <b>where lgnum = itab1-lgnum and ivnum = itab1-ivnum.</b><b>endif.</b>
    LOOP AT it_tab3 INTO wa_tab3.
    <b>clear wa_tab1.</b>
    READ TABLE it_tab1 INTO wa_tab1 WITH
    KEY lgnum = wa_tab3-lgnum
    ivnum = wa_tab3-ivnum.
    IF sy-subrc = 0.
    move-corresponding it_tab1 to it_tab3.
    <b>modify it_tab3 from wa3 transporting lgtyp uname where lgnum = wa_tab3-lgnum
    and ivnum = wa_tab3-ivnum.</b>ENDIF.
    clear it_tab3.
    endloop.
    2. Use inner join
    Types: begin of str1_tab,
    lgnum type lgnum,
    ivnum type LVS_IVNUM,
    ivpos type LVS_IVPOS,
    lgtyp type lgtyp,
    lgpla type lgpla,
    idatu type LVS_IDATU,
    uname type LINK_UNAME,
    end of str1_tab.
    Data: it_tab1 type table of str1_tab,
    wa_tab1 like line of it_tab1.
    select linklgnum linkivnum linklgtyp linkuname linplgpla linpidatu FROM link inner join linp on linklgnum = linplgnum
    and linkivnum = linkivnum
    into TABLE it_tab1 where lgnum = pa_lgnum AND ivnum IN s_ivnum.
    Now itab1 will contain all the values

  • How to get all values from an interval using select statement

    Hi,
    Is it possible to write a select statement that returns all values from an interval? Interval boundaries are variable.
    something like this:
    select (for x in 1,1024 loop x end loop) from dual
    (this, of course, doesn't work)
    The result in this example should be 1024 rows of numbers from 1 to 1024. These numbers are parameters, so it is not possible to create a table with predefined values.
    Thanks in advance for your help,
    Mia.

    For your simple case, with a lower boundary of 1, you can use:
    SELECT rownum
    FROM all_objects
    WHERE rownum <= 1024For a set of number between say 50 - 100, you can use something like:
    SELECT rownum + (50 - 1)
    FROM all_objects
    WHERE rownum <= (100 - 50 + 1)Note, that all_objects was used only because it generally has a lot of rows. Any table with at least the number of rows in your range will work.
    TTFN
    John

  • Using Select statement in IF condition?

    hi all,
    Can i use select statement in IF COndition in pl sql ?
    eg like- if( select 1 from ASD) then
    end if;

    There is no way to do any kind of select statement inside if conditions.
    Why don't test simple cases like this first?
    An example to show it.
    SQL> begin
      2   if exists (select 1 from dual) then
      3    dbms_output.put_line('ok');
      4   end if;
      5  end;
      6  /
    if exists (select 1 from dual) then
    ERRORE alla riga 2:
    ORA-06550: line 2, column 5:
    PLS-00204: function or pseudo-column 'EXISTS' may be used inside a SQL
    statement only
    ORA-06550: line 2, column 2:
    PL/SQL: Statement ignored
    SQL> begin
      2   if ( (select count(*) from dual) > 0 ) then
      3    dbms_output.put_line('ok');
      4   end if;
      5  end;
      6  /
    if ( (select count(*) from dual) > 0 ) then
    ERRORE alla riga 2:
    ORA-06550: line 2, column 8:
    PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
    ( - + case mod new not null others <an identifier>
    <a double-quoted delimited-identifier> <a bind variable> avg
    count current exists max min prior sql stddev sum variance
    execute forall merge time timestamp interval date
    <a string literal with character set specification>
    <a number> <a single-quoted SQL string> pipe
    <an alternatively-quoted string literal with character set specification>
    <an alternativ
    ORA-06550: line 2, column 33:
    PLS-00103: Encountered the symbol ")" when expecting one of the following:
    . , @ ; for <an identifier>
    <a double-quoted delimited-identifier> group having intersect
    minus order partition start subpartition union where connect
    SQL> begin
      2   if ( 0 in (select count(*) from dual) ) then
      3    dbms_output.put_line('ok');
      4   end if;
      5  end;
      6  /
    if ( 0 in (select count(*) from dual) ) then
    ERRORE alla riga 2:
    ORA-06550: line 2, column 12:
    PLS-00405: subquery not allowed in this context
    ORA-06550: line 2, column 2:
    PL/SQL: Statement ignoredBye Alessandro

  • Number of rows inserted is different in bulk insert using select statement

    I am facing a problem in bulk insert using SELECT statement.
    My sql statement is like below.
    strQuery :='INSERT INTO TAB3
    (SELECT t1.c1,t2.c2
    FROM TAB1 t1, TAB2 t2
    WHERE t1.c1 = t2.c1
    AND t1.c3 between 10 and 15 AND)' ....... some other conditions.
    EXECUTE IMMEDIATE strQuery ;
    These SQL statements are inside a procedure. And this procedure is called from C#.
    The number of rows returned by the "SELECT" query is 70.
    On the very first time call of this procedure, the number rows inserted using strQuery is *70*.
    But in the next time call (in the same transaction) of the procedure, the number rows inserted is only *50*.
    And further if we are repeating calling this procedure, it will insert sometimes 70 or 50 etc. It is showing some inconsistency.
    On my initial analysis it is found that, the default optimizer is "ALL_ROWS". When i changed the optimizer mode to "rule", this issue is not coming.
    Anybody faced these kind of issues?
    Can anyone tell what would be the reason of this issue..? any other work around for this...?
    I am using Oracle 10g R2 version.
    Edited by: user13339527 on Jun 29, 2010 3:55 AM
    Edited by: user13339527 on Jun 29, 2010 3:56 AM

    You have very likely concurrent transactions on the database:
    >
    By default, Oracle Database permits concurrently running transactions to modify, add, or delete rows in the same table, and in the same data block. Changes made by one transaction are not seen by another concurrent transaction until the transaction that made the changes commits.
    >
    If you want to make sure that the same query always retrieves the same rows in a given transaction you need to use transaction isolation level serializable instead of read committed which is the default in Oracle.
    Please read http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10471/adfns_sqlproc.htm#ADFNS00204.
    You can try to run your test with:
    set  transaction isolation level  serializable;If the problem is not solved, you need to search possible Oracle bugs on My Oracle Support with keywords
    like:
    wrong results 10.2Edited by: P. Forstmann on 29 juin 2010 13:46

  • How to pass parameter in Function by using select statement?

    Hi,
    I got a problem. I cant pass in parameter to function by using select statement. But it can pass in parameter by using 'hardcode' method. How can I solve this problem?
    Eg,
    select * from table (SplitFunction('HS750020,HS750021')) <<< this work.
    but
    select * from table (SplitFunction(select LOT_NO from TRACER_SEARCH_SCHEDULE where JOB_ID = '36')) <<< do not work.
    Thanks for who try to help. Thanks.

    skymonster84 wrote:
    I have try this before. But it not work.here is an example
    create or replace type stringlist as table of varchar2(100)
    create or replace function splitstring(pstring in varchar2) return stringlist
    as
      lstringlist stringlist;
    begin
      select regexp_substr(pstring,'[^,]+',1, level) bulk collect into lstringlist
        from dual
      connect by level <= length(pstring)-length(replace(pstring,','))+1;
      return lstringlist;
    end;
    select * from table(select splitstring('xx,yy,zz') from dual)
    create table t(str varchar2(100))
    insert into t values('x,y,z')
    insert into t values('a,b,c')
    select * from table(select splitstring(str) from t where rownum<2)
    /If you supply multiple values then it will fail.
    select * from table(select splitstring(str) from t)
    /

  • Insert using select statement

    Hi,
    I am trying to insert values using select statement. But this is not working
    INSERT INTO contribution_temp_upgrade
    (PRO_ID,
    OBJECT_NAME,
    DELIVERY_DATE,
    MODULE_NAME,
    INDUSTRY_CATERGORIZATION,
    ADVANTAGES,
    REUSE_DETAILS)
    VALUES
    SELECT
    :P1_PROJECTS,
    wwv_flow.g_f08(vRow),
    wwv_flow.g_f09(vRow),
    wwv_flow.g_f10(vRow),
    wwv_flow.g_f11(vRow),
    wwv_flow.g_f12(vRow),
    wwv_flow.g_f13(vRow)
    FROM DUAL;
    Please let me know what i am missing..
    Thanks
    Sudhir

    Try this
    INSERT INTO contribution_temp_upgrade
    (PRO_ID,
    OBJECT_NAME,
    DELIVERY_DATE,
    MODULE_NAME,
    INDUSTRY_CATERGORIZATION,
    ADVANTAGES,
    REUSE_DETAILS)
    SELECT
    :P1_PROJECTS,
    wwv_flow.g_f08(vRow),
    wwv_flow.g_f09(vRow),
    wwv_flow.g_f10(vRow),
    wwv_flow.g_f11(vRow),
    wwv_flow.g_f12(vRow),
    wwv_flow.g_f13(vRow)
    FROM DUAL;Note: when you are selecting a value using select statement, you should not specify the keyword "values".
    i assume you have already assigned value for your bind variable :P1_PROJECTS and rest of the functions will return some value.
    Regards,
    Prazy

  • Using SELECT INTO statement to transfer data from one DB to another?

    Hello,
    I need to move data from an SAP table to another downstream SQL server box without flat file in between. I have set up the DBCON interface, so that my ABAP code on SAP can connect to the remote SQL Server, then I can run INSERT command as Native SQL inside the ABAP.
    However, INSERT has performance problem. The best performer as I can find is SELECT INTO statement. But then I am stuck at how to use SELECT INTO to query my local SAP table and send (via INTO) to remote database. I am not even sure whether I should use Open SQL or Native SQL.
    Any suggestion? BTW, I understand the limitation of Native SQL, but we are OK to use it.
    Thanks!

    It appears that this is some kind of migration project due to the scope of the data contained in the single file? If so whatever you do is like ly to be trow away once the migration of data is completed.
    You have a couple of options:
    1) Get the data extracted from HFM in multiple files instead of one bulk file, broken down by scanario,year & period
    2) Take the single data dump file produced by FDM and manipulate it yourself to get the data in a more usuable format for processing through FDM.
    Option 2 could be achieved via any ETL tool or a custom file parsing script. What may be more attractive to you and allow you to fully leverage your investment in FDM is that you could use the PULL adapter that ships as part of the FDM adapter suite to perform this transformation exercise. The PULL adapter takes a flat file input and allows you to use all the in built functionality of FDM to transform it and output a modified flat file (or series of flat files). You could use it to produce multioload files or a series of files broken down by scenario,year,period.
    Whatever you do I would suggest that break the single data file down into smaller chunks as this will help with the iterative debugging process you will inevitably have to undetake whislt migrating the data to the new application.

  • How can I select columns from a table EMP, using Select statement?.

    Hi Friends,
    How can I select columns from a table EMP?.
    I want to select columns of EMP table, using select statement.
    Please reply me urgently.
    Shahzad

    Something like this:
    scott@DBA> select empno,ename,job from emp;
         EMPNO ENAME      JOB
          7369 SMITH      CLERK
          7499 ALLEN      SALESMAN
          7521 WARD       SALESMAN
          7566 JONES      MANAGER
          7654 MARTIN     SALESMAN
          7698 BLAKE      MANAGER
          7782 CLARK      MANAGER
          7788 SCOTT      ANALYST
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 JAMES      CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK
    14 rows selected.Check the documentation:
    http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10002.htm#sthref9697
    Message was edited by:
    Delfino Nunez

  • How to fetch negative sign data using select statement

    hi gurus,,
                  i hv  to fetch data which is negative in nature  using select statement i m using ppdit table and wrbtr field.(it contains both negative and positive data)....wat sud i add with select statement...plz help me..
    thnx in advance
    Message was edited by:

    HI,
               I think you can use LT or < 0.0 in the WHERE clause to get all the -ve values. Once you get them treat them as negative.
    Regards,
    Sesh

Maybe you are looking for

  • Restoring backup on PC

    My library has been backed up onto DVD using the iTunes Backup. This was done on a mac. My question is, will I run into formatting problems if I restore to iTunes installed on a Vista PC so that I can have the library on both computers?

  • Doubt on Bundle IDoc in PI

    Hi , We have a IDoc to File scenario .IDoc is not coming in bundled format from ECC .Could you please let me know the steps for bundling in PI to cross check .

  • Input level in BufferedImage

    How can I change the input level of a BufferedImage??? I tried to use LookupOp with a ShortLookupTable object, but it changed the input level and output level too... So I just want to modify input level... Any Body have suggestions??

  • Recording Kontakt through Logic Pro x?

    I want to record Kontakt 5 instruments through Logic Pro X, but the Setting and Instrument buttons are not showing in the Inspector. In all the tutorials that I have seen, you click the Instrument button in the Inspector and select Kontakt as you ins

  • Mail is taking me through a new account set up!

    I ran the preferential treatment utility and it said my preferences appear ok. Doea this mean I have bigger problems? Thanks for any help!