Selecting from different rows

Hi all,
The database is Oracle10g.
I want to select one column from one row of a table, based on a condition, and the second column of the second row of that first row of the same table.
There should be an order by clause to enable it so that I can talk about first row and second row.
For example : select ename , job from emp where deptno = 20; . And here the column ename is for the first employee of deptno 20 , and job is the column for the second employee in the same deptno.
How to achieve this ?
Thank you very much indeed

I think you want this.
SQL> create table test as select rownum id,'ROW '||rownum r from all_objects where rownum<=5;
Table created.
SQL> select * from test order by id;
        ID R
         1 ROW 1
         2 ROW 2
         3 ROW 3
         4 ROW 4
         5 ROW 5
SQL> select id,r,lead(r,1) over (order by id) next_r from test order by id;
        ID R          NEXT_R
         1 ROW 1      ROW 2
         2 ROW 2      ROW 3
         3 ROW 3      ROW 4
         4 ROW 4      ROW 5
         5 ROW 5The feature you are looking for is analytic functions. You can read about them here: http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/analysis.htm#sthref1684

Similar Messages

  • SUM two fileds from different rows from the same table

    I would like to SUM two fileds from different rows from the same table but I don't know how to do that.
    E.g.
    BillingTransactionsIndex      CreateDate      UserType      UserIndex      TransType      Reference      Total      Balance
    2      6/5/2008 15:02      1      51      1      150      -288.2      -288.2
    5      6/8/2008 11:55      1      51      1      157      -1.58674      -289.787
    In the table above I want SUM fields Total and Balance for the first row and the the next row SUM 2nd row Total with 1st row Balance
    Please help
    Thanks

    SQL> with tbl as
      2  (select 1 as ID,  90 as total from dual
      3          union all
      4  select 2 as ID,  23 as total  from dual
      5          union all
      6  select 3 as ID,  15 as total  from dual
      7          union all
      8  select 4 as ID,  20 as total  from dual)
      9  select id , total, sum(total) over (order by ID) as balance from tbl
    10  /
            ID      TOTAL    BALANCE
             1         90         90
             2         23        113
             3         15        128
             4         20        148
    SQL>

  • How to do a SELECT from different tables into an internal table?

    How to do a SELECT from different tables into an internal table?
    I want to select data from MARA, MARC and ZPERSON and populate my ITAB_FINAL
    REPORT  zinternal_table.
    TABLES:
      mara,
      marc,
      zperson.
    TYPES:
    BEGIN OF str_table1,
      v_name LIKE zperson-zname,
      v_matnr LIKE marc-matnr,
      v_emarc LIKE marc-emarc,
      v_werks_d LIKE marc-werks_d,
      v_dstat LIKE marc-dstat,
      END OF str_table,
      i_table1 TYPE STANDARD TABLE OF str_table1.
    DATA:
    BEGIN OF str_table2,
    v_mandt LIKE mara-mandt,
    v_ernam LIKE mara-ernam,
      v_laeda LIKE mara-laeda,
    END OF str_table2,
    itab_final LIKE STANDARD TABLE OF str_table2.

    first find the link between mara , marc and zperson , if u have link to 3 tables then u can jus write a join and populate the table u want ( thats final table with all the fields).
    u defenitely have alink between mara and marc so join them and retrieve all data into one internal table.
    then for all the entries in that internal table retrieve data from zperson into another internal table.
    then loop at one internal table
    read another internal table where key equals in both the tables.
    finally assign fileds if sy-subrc = 0.
    gs_finaltable-matnr = gs_table-matnr
    etc...
    and finally append gs_finaltable to gt_finaltable.
    there u go ur final table has all the data u want.
    regards
    Edited by: BrightSide on Apr 2, 2009 3:49 PM

  • SELECT returning different rows when issued from SQL Developer or Java apps

    Hi there. I'm facing a problem here: I'm trying to issue a SELECT from Java, which should return me 2 rows; but I'm getting just one. When I issue the SELECT directly through SQL Developer it gives me the expected result. I've pastebin the code at http://paste.uni.cc/11821, where I've described in details the problem.
    What could it be? Any help would be appreciated.
    Thanks in advance!

    Marco,
    I would code it a bit differently, but I don't think that would solve your problem.
    I suggest setting up the JDBC logging. I'm not promising it will help, but I guess it
    can't hurt. Here is a white paper about it:
    http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/logging%20white%20paper.pdf
    You can also access that link from this Web page:
    http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html
    Good Luck,
    Avi.

  • Field selection from differant tables

    hello all,
             i need to select differant fields from differant tables when i select common fields from both the tables, is it necessary that the common field need to be a primary key in both tables.
    thanks in advance
    seenu

    HI,
        No its not required that the common field be part of the primary key in both tables only thing is you need to prefix the table name if the field names are same. But if you are using a INNER JOIN then there is no need to select both fields since you know the content of both fields will be same if JOIN is ON these fileds as well.
    Regards,
    Sesh
    Message was edited by:
            Seshatalpasai Madala

  • Selection from different tables

    Hello Everyone,
    I have a situation where I have 15 fields in the selection screen.
    The selection is dependent on three or more tables.
    First I have selected from two tables but if the user enters values in the selection screen then how to make the selection.
    Tables dont have common fields between them. LIKP, LIPS, VTTK, VBUK and VEKP are the tables.
    Can you guys guide me.
    Thank you.

    Hi Vinod,
    First I have selected from two tables but if the user enters values in the selection screen then how to make the selection.
    Your query is not so clear. When are you fetching the data from two table whether before selection screen input (Initialization event) or after selection screen?
    Can you please elaborate your query and better if you post your Selection Screen screen-shot.
    Regards,
    VIjay

  • SELECTing from multiple rows and different tables

    Basically, I have a table with a primary key and some other columns of data. The second table has a foreign key that points to the first table then has a columns with related data. I want to write construct a SQL query where one of the columns is the primary key from the first table and the second column is a concatenation of all the rows in the second table that have the same foreign key.
    I need this in the form of one SQL statement so that I can use it to create a report in Application Express

    Just in case my first post was a bit unclear.
    My first table has a primary key, INTERACTION_ID, and several other columns of data.
    My second table has a foreign key, INTERACTION_ID, and one extra column, USER_NAME.
    There are several rows in the second table that share the same INTERACTION_ID as each interaction can have many user names. I want to construct a SQL query where I pull the interaction id in one column and concatenate all the relevant rows of USER_NAME as the second column.

  • Select from different tables based on value

    Hi Forum,
    I'm stuggling with a problem:
    In a table, I have two columns, pref_type and pref_value. Column pref_type stores a number value that is linked to a preference type, whereas column pref_value stores the value of that preference.
    Unfortunately, the data model is such that per preference type a different tables needs to be used, so for example, if
    pref_type = 1, table to query is A, whereas if
    pref_type = 2, table to query is B.
    I now want to write a query that resolves the preferences, ie it should branch to the respective table based on pref_type and search for pref_value and deliver back a different column of that respective table.
    My first approach was like that:
    select decode (pref_value, 1, (select result from A where pref_value = ???),
    2, (select result from B where pref_value = ???)
    where the three ??? depict the problem I'm having, as Oracle doesn't allow me to have a harmonized subquery here.
    How do I achieve this?
    Thanks for any help,
    J. Sieben

    I believe this is what you are trying to get at:
    SELECT DECODE(m.pref_type, 1, (SELECT result FROM a
                                   WHERE a.pref_value = m.pref_value),
                               2, (SELECT result FROM b
                                   WHERE b.pref_value = m.pref_value)
    FROM my_table mAlthough, if the tables are large, that might be pretty slow. Better than an outer join, but one of those correlated queries is going to be run for each row in my_table. You could lso try something like:
    SELECT m.pref_type, r.result
    FROM my_table m,
         (SELECT 'A' tbl, pref_value, result
          FROM a
          UNION ALL
          SELECT 'B', pref_value, result
          FROM b) r
    WHERE DECODE(m.pref_type, 1, 'A', 'B') = r.tbl and
          m.pref_value = r.pref_valueHTH
    John

  • Select from different tables depending on results

    how to do this in one select
    4 tables
    t3 and t4 are identical in structure but different data
    select id from t1
    If exists in select id from t2
    then select data from t3
    else
    select data from t4
    create table t1 (id number);
    create table t2 (id number);
    create table t3 (col1 varchar2(10), col2 varchar2(10));
    create table t4 (col1 varchar2(10), col2 varchar2(10));
    insert into t1 values(1);
    insert into t1 values(2);
    insert into t2 values(1);
    insert into t3 values('DATA1','DATA2');
    insert into t4 values('DATA3','DATA4');
    commit;
    Ive put values 1 and 2 into t1. as id=1 exists in t2, for that record I want the values from t3 but where id=2, I want the values from t4.
    Possible in one select?   Ive been playing with case statement but not getting anywhere near it

    Having multiple table with same structure looks like a design flaw. What benefit that does bring. So please explain the reason to have 2 table with same structure.
    Said that here are few more ways.
    SQL> select id
      2       , col1
      3       , col2
      4    from (
      5            select t1.id
      6                 , decode(t2.id, null, 'T4', 'T3') table_handle
      7              from t1
      8              left
      9              join t2
    10                on t1.id = t2.id
    11         ) a
    12    join (
    13            select 'T3' table_handle, col1, col2 from t3
    14            union all
    15            select 'T4' table_handle, col1, col2 from t4
    16         ) b
    17      on a.table_handle = b.table_handle;
            ID COL1       COL2
             1 DATA1      DATA2
             2 DATA3      DATA4
    SQL> select id
      2       , col1
      3       , col2
      4    from (
      5            select t1.id
      6                 , dbms_xmlgen.getxmltype('select col1, col2 from ' || decode(t2.id, null, 'T4', 'T3')) xml_data
      7              from t1
      8              left
      9              join t2
    10                on t1.id = t2.id
    11         )
    12       , xmltable
    13         (
    14            '/ROWSET/ROW' passing xml_data
    15            columns col1 varchar2(10) path 'COL1',
    16                    col2 varchar2(10) path 'COL2'
    17         );
            ID COL1       COL2
             1 DATA1      DATA2
             2 DATA3      DATA4
    SQL>

  • HOW CAN I CREATE A VIEW FROM SAME TABLE WHERE I NEED COLUMNS DETAILS FROM DIFFERENT ROWS IN THE SAME TABLE

    i have a table1 on the top, but i want to create a view from table 1 as  view mentioned beneath the table 2. Could any of you please help me.
    table1
    ID
    office
    employee
    activity
    1
    246
    -9999
    698
    2
    ##-99
    21480
    698
    3
    104
    -9999
    7025
    4
    ##-99
    88908
    7025
    5
    108
    -9999
    2415
    6
    ##-99
    17135
    2415
    7
    246
    -9999
    698
    8
    ##-99
    21480
    698
    9
    104
    -9999
    7025
    10
    ##-99
    88908
    7025
    11
    108
    -9999
    2415
    12
    ##-99
    17135
    2415
    view
    ID
    office
    ID1
    employee
    activity
    1
    246
    2
    21480
    698
    3
    104
    4
    88908
    7025
    5
    108
    6
    17135
    2415
    7
    246
    8
    21480
    698
    9
    104
    10
    88908
    7025
    11
    108
    12
    17135
    2415

    declare @forumsTable table (ID int, officeID int, employeeID INT, activityID int)
    insert into @forumsTable (ID, officeID, employeeID, activityID)
    values
    (1 ,246, -9999, 698 ),
    (2 ,-99, 21480, 698 ),
    (3 ,104, -9999, 7025),
    (4 ,-99, 88908, 7025),
    (5 ,108, -9999, 2415),
    (6 ,-99, 17135, 2415),
    (7 ,246, -9999, 698 ),
    (8 ,-99, 21480, 698 ),
    (9 ,104, -9999, 7025),
    (10 ,-99, 88908, 7025),
    (11 ,108, -9999, 2415),
    (12 ,-99, 17135, 2415)
    select f1.ID, f1.officeID, f2.ID as ID1, f1.employeeID, f1.activityID
    from @forumsTable f1
    inner join @forumsTable f2
    on f1.activityID = f2.activityID
    and f1.officeID > 0
    and f2.employeeID > 0
    and f1.id - f2.id = -1
    You really need to improve the relationship here.
    Perhaps you could make office and activity an exclusive pair.

  • Multicube Keyfigure - to be selected from different Basis-Cube Keyfigures

    Dear experts,
    please give your advice how to do this:
    Multiprovider based on 2 InfoCubes. InfoCube A containing keyfigure Z_KFA and InfoCube B containing keyfigure Z_KFB.
    In the Multiprovider only 1 Keyfigure, containing both valued for Z_KFA and Z_KFB is needed.
    So far only one basiscube with its keyfigure is shown for selection.
    How can a keyfigure in MultiProvider be selected that it conatins both keyfigures of the basiscubes?
    Thank you,
    Angie

    Hi Angie:
       If you want to include the 2 Key Figures from your InfoCubes on 1 Key Figure on your Multiprovider you need to use the same Technical name for the Key Figures.
    So you need to either...
    - Rename  Z_KFA (from your InfoCube A) to Z_KFB.
    - Rename  Z_KFB (from your InfoCube B) to Z_KFA.
    Regards,
    Francisco Milán.

  • Can I do an Insert using two selects from different tables?

    Hi,
    I have three tables, Course (CID, NAME, TIME)
    Teacher (TID, NAME, DESCRIPTION) and OfferedBy(CID, TID) to match a course to a teacher.
    After I do an insert on Course, I want to be able to do an insert on OfferedBy using the CID of the course I inserted, and the TID of the teacher that's offering it.
    I tried this after doing inserts on Course and Teacher:
    INSERT INTO OfferedBy values (SELECT CID FROM Course where courseName = 'name' , SELECT TID FROM Teacher WHERE LastName = 'teacherName').
    I get an ORA 00907 error.
    What am I doing wrong? Can this actually be done?
    Thank you
    I

    Hi,
    How would you relate the TID with CID?
    I tried this after doing inserts on Course and Teacher:
    INSERT INTO OfferedBy values (SELECT CID FROM Course where courseName >= 'name' , SELECT TID FROM Teacher WHERE LastName = 'teacherName').
    I get an ORA 00907 error.You can use the query in this way:
    SQL> SELECT ( ( SELECT dummy FROM DUAL), (SELECT DUMMY FROM DUAL)) FROM DUAL;
    SELECT ( ( SELECT dummy FROM DUAL), (SELECT DUMMY FROM DUAL)) FROM DUAL
    ERROR at line 1:
    ORA-00907: missing right parenthesis
    SQL> SELECT 'AA',(SELECT dummy FROM DUAL) FROM DUAL;
    'A (
    AA X
    SQL>Regards

  • Concatenate items from different rows

    We are looking for an aggregate function similiar to the 'count' function, however instead of counting the distinct occurances, we want to concatenate them together into one single string.
    i.e.
    TestTable:
    ID Name
    1 A
    1 B
    1 C
    2 A
    2 F
    SELECT ID, makestring(Name) FROM TestTable;
    Produces:
    1 ABC
    2 AF
    If possible please reply by e-mail to:
    [email protected]
    Any help with this is appreciated
    Mark Emerson

    Mark: I think this is not the best solution in performance, but it can help you like a beginning:
    create or replace function makestring (v_id number) return varchar2
    is
    cursor c is select Name from TestTable
    where id=v_id;
    str varchar2(10):='';
    begin
    for r in c loop
    str:=str &#0124; &#0124; r.Name;
    end loop;
    return str;
    end;
    You must use the DISTINCT clause, like this:
    SELECT DISTINCT id, makestring(id) FROM TestTable;
    This SELECT display the results that you are looking for. The main problem of this function is the size of the TestTable, and It will be important to consider create an index in the ID column, if doesn't exist yet (and to be sure of its use, using hints if it's necessary). Bye and good luck.

  • Update textbox by selecting a different row

    It's like a messaging app so when you click on the selected
    message title, the text shows in the textbox. Well, I've got a nice
    list of message titles but what is the trick for updating the
    textbox to reflect the message chosen? I can do this with separate
    pages but that seems silly. I imagine this is something to do with
    an onclick handler but can someone point me to an example?
    Thanks!

    Hopefully, this will get you started:
    <head>
    <title>Untitled</title>
    <style type="text/css">
    .message-text-hidden{
    display: none;
    </style>
    <script type="text/javascript">
    function display(anElement){
    var number = anElement.id.split('-')[1];
    document.getElementById('message-text').value =
    document.getElementById('message-' + number).innerHTML;
    </script>
    </head>
    <body>
    <div id="title-1" class="message-title"
    onclick="display(this)">All you need to know about
    investing.</div>
    <div id="message-1" class="message-text-hidden">Start
    early</div>
    <input type="text" id="message-text"></input>
    </body>

  • Select 2 records (rows) in the results.

    I am using Oracle R12- Forms.
    After searched for all orders for a specific Customer, on the Results, I need to select 2 different rows.
    Also tried ft object,but failed.
    If manual, I use Keep holding the Ctrl Key, and Click for the first row, and Click 2nd row.
    In OATS, I could not do this with the code below:
    int rone=2;
    int rtwo=5
    Robot robot = new Robot();
    robot.delay(5000);
    // press and hold CONTROL key
    robot.keyPress(KeyEvent.VK_CONTROL);      
    forms.textField("//forms:textField[(@name='MY_ORDER_NUM_"+rone+"')]").click();          
    forms.textField("//forms:textField[(@name='MY_ORDER_NUM_"+rtwo+"')]").click();
    robot.keyRelease(KeyEvent.VK_CONTROL);
    Any help is greatly appreciated.
    Thanks,

    What you need is a tree.
    See Tomahawk (www.myfaces.org)

Maybe you are looking for

  • Excise base value in ARE1 screen shows 0

    Dear Gurus Even after excise calculation has been made in the excise invoice, Excise base value field from which basic excise duty is calculated is showing 0 value in ARE1 screen while we do J1ia101. other values  such as BED, SHC are apperaing. Any

  • Find original calling program or transaction...

    Hello, I want to keep a User-exit from running when it is ran from LT23, but I want it to work from LT11. The problem is when the function to confirm the TO is executed in LT23, it does a call transaction to LT11. So, in the user-exit SY-TCODE has LT

  • Unable to start and create new listener

    hiii everybody, I m unable to start listener in win 7 (11g database) using services.msc bcoz it is showing "status as stopped" only and also unable to create a new listener using net configuration assistant which is giving error-"could not create lis

  • Performance tuning about select

    hi experts:    in one case :  select ** ** ** into table tab                             from **                              for all entries in t_tab                              where ** = t_tab-**                                  and *** in ('1','

  • Report generation and Info Structure updation

    Hi When are the Tables: S094 and other info structures gets updated?? For Example S094 is updated with materials and has the stock details and it have Goods issue MRP Goods issue Valuation etcu2026 I tried creating a material and created a PIR and ru