Table Alias for a single table query

Hi,
What is the difference between using table alias and not using for a query involving single table.
Say
select empno, ename from emp where empno = 1000;
select e.empno,e.ename from emp where e.empno = 1000;
select 1 from emp e where e.empno = 1000;
how above three queries shall be parsed/executed. Can anyone please explain the process ......

Since the 3rd query doesn't access any column values the execution differs from the others:
SQL>  explain plan for select empno, ename from emp where empno = 1000
Explain complete.
SQL>  select * from table(dbms_xplan.display)
PLAN_TABLE_OUTPUT                                                                                  
Plan hash value: 2949544139                                                                        
| Id  | Operation                   | Name   | Rows  | Bytes | Cost (%CPU)| Time     |             
|   0 | SELECT STATEMENT            |        |     1 |    10 |     1   (0)| 00:00:01 |             
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    10 |     1   (0)| 00:00:01 |             
|*  2 |   INDEX UNIQUE SCAN         | PK_EMP |     1 |       |     0   (0)| 00:00:01 |             
Predicate Information (identified by operation id):                                                
   2 - access("EMPNO"=1000)                                                                        
14 rows selected.
SQL>  truncate table plan_table
Table truncated.
SQL>  explain plan for select 1 from emp e where e.empno = 1000
Explain complete.
SQL>  select * from table(dbms_xplan.display)
PLAN_TABLE_OUTPUT                                                                                  
Plan hash value: 56244932                                                                          
| Id  | Operation         | Name   | Rows  | Bytes | Cost (%CPU)| Time     |                       
|   0 | SELECT STATEMENT  |        |     1 |     4 |     0   (0)| 00:00:01 |                       
|*  1 |  INDEX UNIQUE SCAN| PK_EMP |     1 |     4 |     0   (0)| 00:00:01 |                       
Predicate Information (identified by operation id):                                                
   1 - access("E"."EMPNO"=1000)                                                                    
13 rows selected.

Similar Messages

  • JPA Problem using alias for columns in a query

    Hello, I am having some problems with a query that I am trying to use in my JEE project. This query doesnt return an entity but a group of values. I created a class representing the result and a query with the jpa constructor expression but it is not working.
    The problem is that in the query I added some alias to the results, and when I try to run the project it says that it cannot parse the query.
    My Query:
    Query query = em.createQuery("SELECT NEW vo.VOOperacionesAgrupadas (o.nemotecnico as nemotecnico, o.esCompra as esCompra, i.equivUltimo as equivUltimo, sum(o.saldo) as saldo, sum(o.utilidad) as utilidad, sum(o.tasaCompraVenta)/count(o.nemotecnico) as promedioTasaCompra, (i.equivUltimo-sum(o.tasaCompraVenta)/count(o.nemotecnico))*100 as puntosBasicos) FROM Operaciones o, Instrumentos i WHERE o.idUsuario = :idUsuario AND o.nemotecnico = i.nemotecnico AND o.estaCerrada = 'false' Group by o.nemotecnico, o.esCompra, i.equivUltimo"); When I use that the server returns :
    Exception Description: Syntax error parsing the query [SELECT NEW vo.VOOperacionesAgrupadas (o.nemotecnico as nemotecnico, o.esCompra as esCompra, i.equivUltimo as equivUltimo, sum(o.saldo) as saldo, sum(o.utilidad) as utilidad, sum(o.tasaCompraVenta)/count(o.nemotecnico) as promedioTasaCompra, (i.equivUltimo-sum(o.tasaCompraVenta)/count(o.nemotecnico))*100 as puntosBasicos) FROM Operaciones o, Instrumentos i WHERE o.idUsuario = :idUsuario AND o.nemotecnico = i.nemotecnico AND o.estaCerrada = 'false' Group by o.nemotecnico, o.esCompra, i.equivUltimo], line 1, column 53: syntax error at [as].
    Internal Exception: MismatchedTokenException(8!=82)
    GRAVE: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
    Exception Description: Syntax error parsing the query [SELECT NEW vo.VOOperacionesAgrupadas (o.nemotecnico as nemotecnico, o.esCompra as esCompra, i.equivUltimo as equivUltimo, sum(o.saldo) as saldo, sum(o.utilidad) as utilidad, sum(o.tasaCompraVenta)/count(o.nemotecnico) as promedioTasaCompra, (i.equivUltimo-sum(o.tasaCompraVenta)/count(o.nemotecnico))*100 as puntosBasicos) FROM Operaciones o, Instrumentos i WHERE o.idUsuario = :idUsuario AND o.nemotecnico = i.nemotecnico AND o.estaCerrada = 'false' Group by o.nemotecnico, o.esCompra, i.equivUltimo], line 1, column 53: syntax error at [as].
    Internal Exception: MismatchedTokenException(8!=82)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: Exception [EclipseLink-8024] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.JPQLException
    Exception Description: Syntax error parsing the query [SELECT NEW vo.VOOperacionesAgrupadas (o.nemotecnico as nemotecnico, o.esCompra as esCompra, i.equivUltimo as equivUltimo, sum(o.saldo) as saldo, sum(o.utilidad) as utilidad, sum(o.tasaCompraVenta)/count(o.nemotecnico) as promedioTasaCompra, (i.equivUltimo-sum(o.tasaCompraVenta)/count(o.nemotecnico))*100 as puntosBasicos) FROM Operaciones o, Instrumentos i WHERE o.idUsuario = :idUsuario AND o.nemotecnico = i.nemotecnico AND o.estaCerrada = 'false' Group by o.nemotecnico, o.esCompra, i.equivUltimo], line 1, column 53: syntax error at [as].
    Internal Exception: MismatchedTokenException(8!=82)
    at org.eclipse.persistence.exceptions.JPQLException.syntaxErrorAt(JPQLException.java:362)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.handleRecognitionException(JPQLParser.java:304)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.addError(JPQLParser.java:245)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.reportError(JPQLParser.java:362)
    at org.eclipse.persistence.internal.libraries.antlr.runtime.BaseRecognizer.recoverFromMismatchedElement(Unknown Source)
    at org.eclipse.persistence.internal.libraries.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(Unknown Source)
    at org.eclipse.persistence.internal.libraries.antlr.runtime.BaseRecognizer.mismatch(Unknown Source)
    at org.eclipse.persistence.internal.libraries.antlr.runtime.BaseRecognizer.match(Unknown Source)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.constructorExpression(JPQLParser.java:2635)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.selectExpression(JPQLParser.java:2045)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.selectItem(JPQLParser.java:1351)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.selectClause(JPQLParser.java:1266)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.selectStatement(JPQLParser.java:352)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLParser.document(JPQLParser.java:276)
    at org.eclipse.persist
    GRAVE: ence.internal.jpa.parsing.jpql.JPQLParser.parse(JPQLParser.java:133)
    at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.buildParseTree(JPQLParser.java:94)
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:198)
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:173)
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:125)
    at org.eclipse.persistence.internal.jpa.EJBQueryImpl.<init>(EJBQueryImpl.java:109)
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1326)
    ... 59 more
    Caused by: MismatchedTokenException(8!=82)
    ... 74 more
    What can I do?? I have been stuck in this problem for 2 weeks :s I have tried almost everything..
    Thanks in advance for your help!

    SELECT tmp.contract_no, tmp.Actual, tmp.Actual - tmp.NbHours
    FROM ( SELECT t.contract_no, sum(l.hrs) AS Actual, (c.labour_hours * c.labour_progress_per) / 100 AS NbHours
    FROM TASK_DELEGATION t
    INNER JOIN COST_CODE c
    ON t.cost_code = c.cost_code AND t.contract_no = c.contract_no AND t.is_inactive=0
    INNER JOIN Labour.dbo.LABOURALLOT l
    ON l.contractNo = c.contract_no AND l.costcode = c.cost_code AND l.pm = 'N'
    GROUP BY t.contract_no, c.labour_hours, c.labour_progress_per
    ) tmp

  • IVew Error:Create IVIEW in a Portal  for a SAP BW Query

    Hi,
    My requirment is to publish a BW Query to Portal.
    When i tried to create a iver for a particular BW query in portal.....it is pulling every thing.
    When i click to execute a query for which i created iview...a new window pops up and and displays queries according to roles
    Please update me whats happening
    Background:
    BW Version : 7.0
    Currently we are accessing a BW Reports/Queries using BEX WEB Analyzer.
    We are using a Standard Web Templete in WAD.
    When we create a New Query in BW Query designer and publish it a role folder(BW)-PFCG.
    When i execute BEX WEB Analyzer through Explorer i can access query from the folder in the role to which i published.
    I don't need to add each query to web templete when i publish the query to a pole folder in PFCG when i run the BEX WEB Analyzer the query will be in that role automaticall.
    Now i am planning to publish queries in Portal
    I created a role in Portal>Created a work set>assigned the workset to the role
    I am trying to create a iview
    Create a new iview> templete>Query string details
    i assigned this iview to the role
    When i try to access the query from the role i created. intsed of opening the query for which i created iview ...it is opening all the queries that i can access form BEX WEB Analyzer...
    Please update whats happening
    Please let me know if you need firther information
    Thanks

    Hi
    Thanks for the updare...the document (pdf) is not able open...file damegaed...
    PLease aupdate me
    When i created a iview for a single BW query why i can able to see all the queries in the BEX WEB Analyzer
    Thansk

  • Single Update query for multiple tables

    Hiii ....
    I want to update Table A and Table B in a single update query can it be possible.
    it is something like i have previously done with Mysql.
    e.g ..
    UPDATE A, B set a.A=1, b.B=X where (id.A= id.B) and id=101.
    Is it possible or how can i do it, help me out.

    sorry, i am posting the mysql example agin, it is something like this
    e.g ..
    UPDATE A, B set A.a=1, B.b=X where (A.id= B.id) and A.id=101

  • URGENT HELP Required: Solution to avoid Full table scan for a PL/SQL query

    Hi Everyone,
    When I checked the EXPLAIN PLAN for the below SQL query, I saw that Full table scans is going on both the tables TABLE_A and TABLE_B
    UPDATE TABLE_A a
    SET a.current_commit_date =
    (SELECT MAX (b.loading_date)
    FROM TABLE_B b
    WHERE a.sales_order_id = b.sales_order_id
    AND a.sales_order_line_id = b.sales_order_line_id
    AND b.confirmed_qty > 0
    AND b.data_flag IS NULL
    OR b.schedule_line_delivery_date >= '23 NOV 2008')
    Though the TABLE_A is a small table having nearly 1 lakh records, the TABLE_B is a huge table, having nearly 2 and a half crore records.
    I created an Index on the TABLE_B having all its fields used in the WHERE clause. But, still the explain plan is showing FULL TABLE SCAN only.
    When I run the query, it is taking long long time to execute (more than 1 day) and each time I have to kill the session.
    Please please help me in optimizing this.
    Thanks,
    Sudhindra

    Check the instruction again, you're leaving out information we need in order to help you, like optimizer information.
    - Post your exact database version, that is: the result of select * from v$version;
    - Don't use TOAD's execution plan, but use
    SQL> explain plan for <your_query>;
    SQL> select * from table(dbms_xplan.display);(You can execute that in TOAD as well).
    Don't forget you need to use the {noformat}{noformat} tag in order to post formatted code/output/execution plans etc.
    It's also explained in the instruction.
    When was the last time statistics were gathered for table_a and table_b?
    You can find out by issuing the following query:select table_name
    , last_analyzed
    , num_rows
    from user_tables
    where table_name in ('TABLE_A', 'TABLE_B');
    Can you also post the results of these counts;select count(*)
    from table_b
    where confirmed_qty > 0;
    select count(*)
    from table_b
    where data_flag is null;
    select count(*)
    from table_b
    where schedule_line_delivery_date >= /* assuming you're using a date, and not a string*/ to_date('23 NOV 2008', 'dd mon yyyy');

  • How to block a single table for a single user

    Hi all.
    I want to block a single Z table for a single user. How to do this?  If he/she tries to display data using SE16 or SE11 Tcode he/she should get an error message.
    Regards,
    Prajwal K.

    Hi Prajwal,
    We can use the function modules ENQUEUE_E_TABLE for locking tables and the function module DEQUEUE_E_TABLE for unlocking tables. With this method, we don't need to lock objects in order to lock the tables. In other words, any table can be locked/unlocked using these function modules.
    Check this sample code:
    *Locking Table*
    data:
    varkey like rstable-varkey.
    varkey = sy-mandt.
    locking the tables............................
    call function 'ENQUEUE_E_TABLE'
    exporting
    MODE_RSTABLE = 'E'
    tabname = 'MARA'
    varkey = varkey
    X_TABNAME = ' '
    X_VARKEY = ' '
    _SCOPE = '2'
    _WAIT = ' '
    _COLLECT = 'X'
    exceptions
    foreign_lock = 1
    system_failure = 2
    others = 3.
    Hope this helps you.
    Regards,
    Chandra Sekhar

  • How to set dbms_stats parameters for a single table

    Hi,
    I see that dbms_stats has the following procedure:
    PROCEDURE SET_PARAM
    Argument Name Type In/Out Default?
    PNAME VARCHAR2 IN
    PVAL VARCHAR2 IN
    Is there a way to change the parameters only for a single table?
    I need to set METHOD_OPT=>'FOR ALL COLUMNS SIZE 1' only for a specific table...

    I'm sorry, mate. It looks like setting individual table preferences was introduced in 11g (and doesn't seem to work all that well).
    You can still:
    1. Explicitly specify any of the supported parameters by using DBMS_STATS.GATHER_TABLE_STATS() for the individual table and run it along.
    2. Write a PL/SQL wrapper for let's say DBMS_STATS.GATHER_SCHEMA_STATS/GATHER_DTABASE_STATS that would gather the stats for the whole schema but ignore this particular table. Then gather the stats for the table with the METHOD_OPT parameter of your choice that could be different from the one used for the rest of the schema.
    This could be achieved by locking particular table stats with DBMS_STATS.LOCK_TABLE_STATS, running GATHER_SCHEMA_STATS with force=>FALSE (which is the default). That parameter will make the procedure ignore any tables with locked stats. As the last step of the wrapper you can execute DBMS_STATS.GATHER_TABLE_STATS for the table in question with the desired METHOD_OPT and force=>TRUE.
    It's a little more work, but may solve your problem.
    Max
    Edited by: Max Seleznev on Nov 28, 2012 6:21 PM
    Edited by: Max Seleznev on Nov 28, 2012 6:22 PM

  • Alias for table and colum names?

    Hi there,
    is there a new to create a alias for table and colum names? If so, how can I do this?
    Thanks,
    Andre

    I'm not sure why you want them changed. The Oracle database by default is case insensitive, which in essence means it converts everything to upper case when a case is not specified (which can be done by wrapping it in quotes). Unfortunately, Java strings are case sensitive. This means that if you try searching resultsets for "TableName" when the database driver is returning "TABLENAME", you will run into problems. It is probably better to have your project match your database as closely as possible to avoid any issues later on.
    That said, I don't know of a way to automatically have the workbench use mixed case names - it uses the strings as they are returned from the database. I believe you will need to manually change the table names if you want them to be different than what you have imported.
    Best Regards,
    Chris

  • Table for 2way,3way matching .query to generate invoice with 2 ways matchin

    hi
    table for 2way,3way matching .query to generate invoice with 2 ways matching
    plz help me
    thanks

    Hello John, I put the (1,2,3) list in the query to show it works with multiple invoices.
    You should comment out the conditions:
    select a.invoice_no, b.child, sum(a.amount) from invoice_detail a,
    select
    child,
    decode (instr(scbp,'.'),0,scbp,
           substr(scbp, 1, instr(scbp,'.') -1)
           ) starting_child
    from (
    select ltrim(sys_connect_by_path(child,'.'),'.') scbp,
    child from
    element_relation
    start with child in (select element_id from invoice_detail /* where invoice_no in (1,2,3) */)
    connect by child = prior parent
    ) b
    where a.element_id = b.starting_child
    /* and a.invoice_no in (1,2,3) */
    group by a.invoice_no,b.child
    order by 1,2to show it works for all invoices
    regards, Tony

  • Update two different tables by a single sql query:

    Hi All,
    i need to update two different talbes in a single sql query..
    i m using the following query
    UPDATE FT_User_Alert SET Subscription = 'W' where product_key=1 and measure_key = 12
    AND
    UPDATE LU_Monthly_Alert_Budget_Sheet SET Min_Red_Range ='16.0' AND Max_Green_Range ='24.0'AND Max_Red_Range ='27.0'AND Min_Green_Range ='16.0' where product_key='1' and measure_key = 12
    i m getting the following error:
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 17001] Oracle Error code: 936, message: ORA-00936: missing expression at OCI call OCIStmtExecute: UPDATE FT_User_Alert SET Subscription = 'W' where product_key=1 and measure_key = 12 AND UPDATE LU_Monthly_Alert_Budget_Sheet SET Min_Red_Range ='16.0' AND Max_Green_Range ='24.0'AND Max_Red_Range ='27.0'AND Min_Green_Range ='16.0' where product_key='1' and measure_key = 12 . [nQSError: 17011] SQL statement execution failed. (HY000)
    SQL Issued: EXECUTE PHYSICAL CONNECTION POOL writeback UPDATE FT_User_Alert SET Subscription = 'W' where product_key=1 and measure_key = 12 AND UPDATE LU_Monthly_Alert_Budget_Sheet SET Min_Red_Range ='16.0' AND Max_Green_Range ='24.0'AND Max_Red_Range ='27.0'AND Min_Green_Range ='16.0' where product_key='1' and measure_key = 12
    but when i m ushin the same query in Microsoft SQL Server it executes properly:
    please help me out...

    Duplicate thread. I've already answered on your other thread...
    update two different tables by a single sql query:

  • Column Alias for a pl/sql table

    CREATE OR REPLACE TYPE VARCHAR2_NTT IS TABLE OF VARCHAR2(16000);
    CREATE OR REPLACE function f_split_data(v_data_to_split IN varchar2,
    v_delimiter IN varchar2,
    v_position IN integer
    return varchar2
    as
    begin
    if v_position = 1
    then
    return substr (v_data_to_split,1,instr (v_data_to_split, v_delimiter, 1, 1) - 1);
    else
    return substr(v_data_to_split,instr (v_data_to_split, v_delimiter, 1, v_position-1) + 1,(instr (v_data_to_split,v_delimiter,1,v_position)-instr(v_data_to_split,v_delimiter,1,v_position-1)- 1));
    end if;
    end;
    SELECT *
    FROM TABLE
    CAST(pkg_common.fn_splitdata ('213~343~2343~2343~5453','~') AS varchar_ntt)
    Is it possible to have an alias for the column value coming out of this pl/sql table ? It would be useful to perform joins etc.,
    Rgds,
    Gokul

    Try
    SELECT column_value AS [alias goes here] FROM TABLE(...Urs

  • Cursor FOR UPDATE OF when querying multiple tables.

    When I run the below code I am able to update the required table:
    DECLARE
        CURSOR cur_get_recs1 IS
            SELECT *
              FROM ncotestaging os
             WHERE os.ote_status = 1
               AND os.action_type = 'A'
               FOR UPDATE OF ote_status;
    BEGIN
        FOR recOTEstage IN cur_get_recs2
        LOOP
           dbms_output.put_line('Updating Row from ' || recOTEstage.ote_status || ' to: 2');
            UPDATE ncotestaging
               SET ote_status = 2
             WHERE CURRENT OF cur_get_recs2;
        END LOOP;
    END;
    /Results as expected on my 5 rows...
    SQL> @test.sql
    Updating Row from 1 to: 2
    Updating Row from 1 to: 2
    Updating Row from 1 to: 2
    Updating Row from 1 to: 2
    Updating Row from 1 to: 2However, when I update the Cursor to the following....
        CURSOR cur_get_recs1 IS
            SELECT os.*, ces.customer_ref, ces.product_code
              FROM ncotestaging os,
                       custRefSource ces
             WHERE os.ote_status = 1
               AND os.action_type = 'A'
               AND ces.ref_source = os.service_code
               FOR UPDATE OF ncotestaging.ote_status;I get the following error...
    SQL> @test.sql
               FOR UPDATE OF ncotestaging.ote_status;
    ERROR at line 18:
    ORA-06550: line 18, column 26:
    PL/SQL: ORA-00904: "NCOTESTAGING"."OTE_STATUS": invalid identifier
    ORA-06550: line 12, column 9:
    PL/SQL: SQL Statement ignored
    ORA-06550: line 25, column 54:
    PLS-00364: loop index variable 'RECOTESTAGE' use is invalid
    ORA-06550: line 25, column 9:
    PL/SQL: Statement ignoredI don't know why the FOR UPDATE statement reports an invalid identifier. I seem to have the syntax correct according to the PL/SQL documentation. Any pointers gratefully received.

    CURSOR cur_get_recs1 IS> SELECT os.*, ces.customer_ref, ces.product_code
    > FROM ncotestaging os,
    > custRefSource ces
    > WHERE os.ote_status = 1
    > AND os.action_type = 'A'
    >AND ces.ref_source = os.service_code
    >FOR UPDATE OF ncotestaging.ote_status;
    the problem iis u have the alias for the table 'ncotestaging' as os that's y it's throwing the error

  • Dispaly of two tables for a single tab in tabstrip

    Hi Experts,
    I have three tables,one is the consolidated table of another one and the third one is completely different but the requirement is ,
    for a SINGLE TAB click of a tab strip both the tables which are related have to be displayed
    and for the the third table a new tab has to be clicked.
    ,i know to display only one ui element for one tab .
    please help me out with this problem of displaying of two tables for a single tab

    Hi Shanmukha,
    Suppose you name of name of tables which need to be displayed in one tab is table 1 and table 2. To get this you can try these steps:
    method 1:
    - create  a view with 2 tables in it i.e table 1 and table 2. create a view container UI element in tab strip and embed this view in it.
    method 2
    - create  view1 containing table 2 only.
    - create view 2 containing table 1 and a view container UI element. Embed view 1 in the view container of this view. Now your view 2 contains both the tables.
    - In the tab strip's tab, create another view container UI element and embed view2 in it.
    I hope it helps.
    Regards
    Arjun

  • 2 column definitions for a single table view

    Hi Experts,
    I have a requirement in which i need 2 column definitions for a single table view.
    The requirement is :
    ..............Week1...........              |....................Week2...............
    01/01/2007 |  02/01/2007  |    15/01/2007 | 16/01/2007 | 17/01/2007
    data.......... |  data..........  |    data.......... | data..........  |   data..........      
    data.......... |  data..........  |    data.......... | data..........  |   data..........    
    data.......... |  data..........  |    data.......... | data..........  |   data..........   
    the weeks shud be displayed for the corresponing dates below......
    Is it possible to have 2 column definitions
    Please help me out.
    Thanks in advance

    Hi Balaiji,
    proceed as follows:
    Create a structure in the dictionary called ZSTRU_USR02_F
      with  field1 type int4
              field3 type int4
              field3 type int4
    Create a table type in the dictionary:
    zusr02  line type ZSTRU_USR02_F.
    Create a structure in the dictionary:
    ZSTRU_USR02
      with tab1  type zusr02
      and tab2  type zusr02
    Create a table type in the dictionary:
    zttusr02 line type ZSTRU_USR02
    Create a controller (table.do) in a BSP-application
    Add the controller class to this controller.
    Add a attribute (table) instance public type zttusr02
    redefine method do_request, add the following coding:
      FIELD-SYMBOLS: <fs_tab> LIKE LINE OF table,
                     <fs_row> TYPE zstru_usr02_f.
      DATA: lirv_view TYPE REF TO if_bsp_page,
            lv_int    TYPE i.
    * Dispatch Input for event handling
      dispatch_input( ).
    * Navigation requested during Event handling?
      IF is_navigation_requested( ) IS NOT INITIAL.
        RETURN.
      ENDIF.
    * get some data into the table.
      INSERT INITIAL LINE INTO TABLE table ASSIGNING <fs_tab>.
      DO 3 TIMES.
        INSERT INITIAL LINE INTO TABLE <fs_tab>-tab1 ASSIGNING <fs_row>.
        ADD 1 TO lv_int.
        <fs_row>-field1 = lv_int.
        ADD 1 TO lv_int.
        <fs_row>-field2 = lv_int.
        ADD 1 TO lv_int.
        <fs_row>-field3 = lv_int.
      ENDDO.
      DO 3 TIMES.
        INSERT INITIAL LINE INTO TABLE <fs_tab>-tab2 ASSIGNING <fs_row>.
        ADD 1 TO lv_int.
        <fs_row>-field1 = lv_int.
        ADD 1 TO lv_int.
        <fs_row>-field2 = lv_int.
        ADD 1 TO lv_int.
        <fs_row>-field3 = lv_int.
      ENDDO.
    * Create the view
      lirv_view ?= create_view( view_name = 'table.htm' ).
    * Hand over the data
      lirv_view->set_attribute( name = 'table' value = table ).
    * Call the view
      call_view( lirv_view ).
    Create a view called table.htm. Add your controller class as controller class for the view and add the attribute table type zttusr02.
    Add the following to the layout:
    <%@page language="abap"%>
    <%@extension name="htmlb" prefix="htmlb"%>
    <htmlb:content design="design2003">
      <htmlb:page title = " ">
        <htmlb:form>
    <htmlb:tableView id             = "tableToDisplay"
                     table          = "<%=table%>"
                     emptyTableText = "No Data"
                     iterator       = "<%=controller%>"
                     footerVisible  = "FALSE"
                     encode         = "TRUE"
                     width          = "100%"/>
        </htmlb:form>
      </htmlb:page>
    </htmlb:content>
    Go back to your controller class. Add the interface IF_HTMLB_TABLEVIEW_ITERATOR
    Implement the method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS
      DATA: lwa_column  LIKE LINE OF p_column_definitions.
    * Column 1
      CLEAR lwa_column.
      lwa_column-columnname          = 'TAB1'.
      lwa_column-title               = 'Column 1'.
      lwa_column-tooltipheader       = 'Tooltip Column 1'.
      lwa_column-width               = '50%'.
      lwa_column-wrapping            = 'FALSE'.
      lwa_column-horizontalalignment = 'LEFT'.
      lwa_column-verticalalignment   = 'MIDDLE'.
      APPEND lwa_column TO p_column_definitions.
    * Column 1
      CLEAR lwa_column.
      lwa_column-columnname          = 'TAB2'.
      lwa_column-title               = 'Column 2'.
      lwa_column-tooltipheader       = 'Tooltip Column 2'.
      lwa_column-width               = '50%'.
      lwa_column-wrapping            = 'FALSE'.
      lwa_column-horizontalalignment = 'LEFT'.
      lwa_column-verticalalignment   = 'MIDDLE'.
      APPEND lwa_column TO p_column_definitions.
    Implement the method IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_CELL_START and add:
      DATA: lr_tview   TYPE REF TO cl_htmlb_tableview.
      FIELD-SYMBOLS: <fs_row> LIKE LINE OF table.
      ASSIGN p_row_data_ref->* TO <fs_row>.
      CASE p_column_key.
        WHEN 'TAB1'.
          CREATE OBJECT lr_tview.
          lr_tview->id = p_cell_id.
          GET REFERENCE OF <fs_row>-tab1 INTO lr_tview->table.
          lr_tview->footervisible = ''.
          lr_tview->width = '100%'.
          p_replacement_bee = lr_tview.
        WHEN 'TAB2'.
          CREATE OBJECT lr_tview.
          lr_tview->id = p_cell_id.
          GET REFERENCE OF <fs_row>-tab2 INTO lr_tview->table.
          lr_tview->footervisible = ''.
          lr_tview->width = '100%'.
          p_replacement_bee = lr_tview.
      ENDCASE.
    With this you get a table in a table. Now if you create a second iterator you'll be able to adjust the apperance of the inner table, as well as you can add column headers.
    Hope that helps.
    Best Regards
    Michael

  • What can i do for removing SINGLE in this select query??

    What can i do for removing SINGLE in this select query given below and also NOT USE 'ENDSELECT'??
    I have defined g_t_zv7_cachemapping as following ::
    DATA : BEGIN OF g_t_zv7_cachemapping OCCURS 0,
             kostl LIKE zv7_cachemapping-kostl,
             END OF g_t_zv7_cachemapping.
    SELECT SINGLE kostl FROM zv7_cachemapping INTO g_t_zv7_cachemapping
               WHERE  auart = g_t_vbak-auart.
            IF sy-subrc = 0 .
            ENDIF.

    Shashank,
    DATA : BEGIN OF g_t_zv7_cachemapping OCCURS 0,
    AUART LIKE zv7_cachemapping-AUART,
    kostl LIKE zv7_cachemapping-kostl,
    END OF g_t_zv7_cachemapping.
    If not g_t_vbak[] is initial.
    SELECT auart kostl
      FROM zv7_cachemapping INTO table g_t_zv7
    for all entries in g_t_vbak
    WHERE auart = g_t_vbak-auart.
    Endif.
    sort : g_t_zv7 by auart , 
              g_t_vbak by auart.
    loop at g_t_vbak.
      READ TABLE g_t_zv7 WITH KEY AUART = g_t_vbak-AUART
                                        BINARY SEARCH.
       IF sy-subrc eq 0.
       ENDIF.
    endloop.
    Pls. reward if useful

Maybe you are looking for