Writing alias query with casting

Dear Experts,
i want to excute a query which have a condition that needs some casting. the table is MSEG the users are entering the reffrencing article document in the item text field. now all i need is to excute a query which have the mseg aliased and the joining condition should be mblnr with sgtxt
i imagine it should be something like this
select * from recmseg,supmseg where supmseg.mblnr=cast(recmseg.sgtxt as blnr)
recmseg is alias mseg for the recieving site
supmseg is alias Mseg for suplying site
so please can you tell me where i can write it and how to excute it and correct the syntax also

i found it
REPORT  ZMM_TRANSFER.
DATA :
       fs_itab TYPE mseg,rs_itab LIKE TABLE OF mseg.
   select MSEG2~mblnr MSEG1~sgtxt
     INTO CORRESPONDING FIELDS
                               OF TABLE rs_itab
     from MSEG as MSeg1
    inner JOIN
      MSEG as mseg2
                  on
       mseg2~MBLNR = MSEG1~sgtxt.
                                                                                LOOP AT rs_itab into fs_itab.
  WRITE : / fs_itab-sgtxt,fs_itab-mblnr.
ENDLOOP.

Similar Messages

  • Writing single query with conflicting WHERE statements

    How do I run the following as a single query that will result in a column that pertains to the first block of code and then another column that pertains to the 2nd block of code? The issue is that I need 2 different WHERE statements. So the final output will be patient_id, complete, incomplete.
    SELECT patient_id, COUNT(*) AS complete
    FROM STATUS
    WHERE status = 1
    GROUP BY patient_id
    ORDER BY patient_id;
    SELECT patient_id, COUNT(*) AS incomplete
    FROM STATUS
    WHERE status = 2
    GROUP BY patient_id
    ORDER BY patient_id;
    Thanks!

    Hi,
    apex wrote:
    Thanks for all of the help.
    I would like to add another column with decile and am struggling as to how to do it. Since I can't reference something in a calculation in the same step, I think I will need a 3rd nesting, but what I haven't figured out is how to get the number of subjects whose ratio is less than that subject's ratio. Right: you can't assign an alias (such as complete or ratio) to a calculated column and use that alias in the same sub-query.
    If the calculation isn't very complicated, then you might find it simpler just to repeat the calculation. For example, I think this is what you want:
    WITH     got_complete     AS
         SELECT    patient_id
         ,        COUNT ( CASE WHEN status = 1 THEN 1 END )     AS complete
         ,       COUNT ( CASE WHEN status = 2 THEN 1 END )      AS incomplete
         FROM        pt_status
         WHERE        status IN (1,2)
         GROUP BY  patient_id
    SELECT       patient_id, complete, incomplete
    ,                                complete / (complete + incomplete)     AS Ratio
    ,       RANK () OVER ( ORDER BY  complete / (complete + incomplete) ) - 1
                                                        AS decile
    FROM      got_complete
    ORDER BY  complete
    ,            incomplete     DESC
    ;RANK numbers rows 1, 2, 3, ... If I understand your requirements, you want the numbering to start with 0 (meaning "there are 0 other patients with a lower ratio"), so that's why I subtracted 1.
    Depending how you want to handle ties, you may need to add some tie-breaker expressions to the analytic ORDER BY clause, and/or use ROW_NUMBER instead of RANK.
    Here, I used the calculation "complete / (complete + incomplete)" in the ratio column, then repeated it in the decile column.
    I you want, you can add another sub-query, called got_ratio, which would add the ratio column, but do nothing about the decile column. Then, in the main query, you could use RANK as shown above (or, as you suggested, a scalar sub-query referencing got_ratio) to get the number of other pateient_ids with lower ratios.
    On the other hand, you could do this whole job without any sub-queries, using AVG as I did earlier, and then repeating that same AVG expression in the ORDER BY clause for RANK. Aggregate functions are computed before analytic fucntions, so the analytic RANK can referenece the aggregate AVG.
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and also post the results you want from that data. Include examples of decile ties (2 or more patients with the same ratio).
    Explain, using specific examples, how you get those results from that data.

  • Need help with writing a query with dynamic FROM clause

    Hi Folks,
    I need help with an query that should generate the "FROM" clause dynamically.
    My main query is as follows
    select DT_SKEY, count(*)
    from *???*
    where DT_SKEY between 20110601 and 20110719
    group by DT_SKEY
    having count(*) = 0
    order by 1; The "from" clause of the above query should be generated as below
    select 'Schema_Name'||'.'||TABLE_NAME
    from dba_tables
    where OWNER = 'Schema_Name'Simply sticking the later query in the first query does not work.
    Any pointers will be appreciated.
    Thanks
    rogers42

    Hi,
    rogers42 wrote:
    Hi Folks,
    I need help with an query that should generate the "FROM" clause dynamically.
    My main query is as follows
    select DT_SKEY, count(*)
    from *???*
    where DT_SKEY between 20110601 and 20110719
    group by DT_SKEY
    having count(*) = 0
    order by 1; The "from" clause of the above query should be generated as below
    select 'Schema_Name'||'.'||TABLE_NAME
    from dba_tables
    where OWNER = 'Schema_Name'
    Remember that anything inside quotes is case-sensitive. Is the owner really "Schema_Name" with a capital S and a capital N, and 8 lower-case letters?
    Simply sticking the later query in the first query does not work.Right; the table name must be given when you compile the query. It's not an expression that you can generate in the query itself.
    Any pointers will be appreciated.In SQL*Plus, you can do something like the query bleow.
    Say you want to count the rows in scott.emp, but you're not certain that the name is emp; it could be emp_2011 or emp_august, or anything else that starts with e. (And the name could change every day, so you can't just look it up now and hard-code it in a query that you want to run in the future.)
    Typically, how dynamic SQL works is that some code (such as a preliminary query) gets some of the information you need to write the query first, and you use that information in a SQL statement that is compiled and run after that. For example:
    -- Preliminary Query:
    COLUMN     my_table_name_col     NEW_VALUE my_table_name
    SELECT     table_name     AS my_table_name_col
    FROM     all_tables
    WHERE     owner          = 'SCOTT'
    AND     table_name     LIKE 'E%';
    -- Main Query:
    SELECT     COUNT (*)     AS cnt
    FROM     scott.&my_table_name
    ;This assumes that the preliminary query will find exactly one row; that is, it assumes that SCOTT has exactly one table whose name starts with E. Could you have 0 tables in the schema, or more than 1? If so, what results would you want? Give a concrete example, preferably suing commonly available tables (like those in the SCOTT schema) so that the poepl who want to help you can re-create the problem and test their ideas.
    Edited by: Frank Kulash on Aug 11, 2011 2:30 PM

  • Having a problem with writing pivoting query.

    Hi All,
    I have a query with one input parameter. It gives different result based on the input provided.
    For example
    1. If i give input as date1 the output would be as follows.
    Col1     Col2     Col3
    name1     v1     10
    name1     v2     14
    name2     v1     15
    name3     v3     202. If i give input as date2 the output would be as follows.
    Col1     Col2     Col3
    name2     v1     14
    name2     v2     10
    name3     v1     8
    name3     v2     14
    name1     v1     10
    name1     v2     34
    name1     v4     23
    name1     v5     10
    name4     v1     12
    name4     v2     14
    name4     v4     18
    name4     v5     20
    name5     v1     14
    name5     v2     10and so on for diff inputs, I get diff output.
    Now, I am trying to write a query which would give me the pivot data on the outputs shown above.
    For Example
    1. For the first output on the top, the pivot query should return the data as follows:
          name1     name2     name3
    v1     10     15     0
    v2     14     0     0
    v3     0     0     202. For the second output on the top, the pivot query should return the data as follows:
          name1     name2     name3     name4     name5
    v1     10     14     8     12     14
    v2     34     10     14     14     10
    v3     0     0     0     0     0
    v4     23     0     0     18     0
    v5     10     0     0     20     0and so on...
    I would be greatly thankful for any kind of input provided since.
    Regards
    Sapan

    Hi Frank,
    Thanks for your response, I did have a look at the thread which had the options for both static as well as the dynamic pivoting.
    But as you said this scenario needs a dynamic SQL. The only constraint is, I need to plug in the SQL into HTML-DB and spooling would not be feasible. That's the reason I am trying to frame a query around the current query which gives me the base data to be pivoted. I am also keeping my options open on coming up with PL/SQL block, which can integrate well with HTML-DB.
    Any thoughts/suggestions would be helpful.
    Thank you.

  • Help with re-writing this query

    Dear experts;
    create table t2
      ID varchar2(1000),
      name varchar2(1000),
       place varchar2(1000)
    create table mappingt2
      grades varchar2(1000)
      individual varchar2(1000)
    insert into t2 values ('James', 'John', 'newyork');
    insert into t2 values ('Linda', 'James', 'London');
    insert into t2 values ('Alex', 'kim', 'Mexico');
    insert into t2 values ('karen', 'Jack', 'Tunis');
    insert into t2 values ('CC', 'Jack', 'Peru');
    insert into t2 values ('Linda', 'James', 'Germany');
    insert into mappingt2 values ('A', 'James');
    insert into mappingt2 values ('C', 'Kim');
    insert into mappingt2 values ('C', 'Linda');
    insert into mappingt2 values ('B', 'CC');I have the following query below
    SELECT (select grades from mappingt2 t
       where t.individual =  pt.ID) as current_grade
          ,(select grades from mappingt2 ty
       where ty.individual =  pt.name) alt_grade
          ,pt.place
      FROM t2 ptI was just wondering whether this query can be better written. All help is appreciated. Thank you

    user13328581 wrote:
    Hi Frank, Tom Kyte claims sub scalar queries is usually betterHe didn't say usually he said if you want the first row faster
    >
    if your goal is to optimize your query for initial response time, you may want to use the former query, with the scalar subquery, because Oracle Database would have to get just the first row from DEPT, run the scalar subquery (select count...) against EMP to get the count, and then return it. The process for returning that first row would be very fast.
    >
    The corollary to this that was not explicitly mentioned in the article that I can see is that this probably comes at the expense of the time taken to return all the rows which can then take longer.

  • Help needed  in writing a Query/Procedure

    Hello All,
    Need all ur help in writing a query or procedure
    Lets say the Table name is DEMO
    There i have one column like num it has values
    1
    2
    3
    4
    5
    8
    9
    10
    my query output should be
    1-5
    8-10
    i,e .. if the diff between two rows is greater than 1 then it result should be in a separate group
    I need a query/Procedure for this. Kindly help
    Regards,
    Chandra

    Tried obtaining the output using SQL and the result is as follows:
    SQL> WITH T AS
      2  (
      3  SELECT 1 COL1 FROM DUAL
      4  UNION
      5  SELECT 2 COL1 FROM DUAL
      6  UNION
      7  SELECT 3 COL1 FROM DUAL
      8  UNION
      9  SELECT 4 COL1 FROM DUAL
    10  UNION
    11  SELECT 5 COL1 FROM DUAL
    12  UNION
    13  SELECT 8 COL1 FROM DUAL
    14  UNION
    15  SELECT 9 COL1 FROM DUAL
    16  UNION
    17  SELECT 10 COL1 FROM DUAL
    18  UNION
    19  SELECT 13 COL1 FROM DUAL
    20  UNION
    21  SELECT 14 COL1 FROM DUAL
    22  UNION
    23  SELECT 15 COL1 FROM DUAL
    24  UNION
    25  SELECT 16 COL1 FROM DUAL
    26  UNION
    27  SELECT 23 COL1 FROM DUAL
    28  UNION
    29  SELECT 24 COL1 FROM DUAL
    30  )
    31  SELECT OUTPUT FROM
    32  (
    33  SELECT DECODE(COL3,NULL,COL1, COL2)  || '-' || LEAD(DECODE(COL3,NULL,COL3, COL1)) OVER (ORDER BY DECODE(COL3,NULL,COL1, COL2)) OUTPUT  FROM
    34  (
    35  SELECT COL1, LEAD(COL1) OVER (ORDER BY COL1) COL2, LAG(COL1) OVER (ORDER BY COL1) COL3 FROM T
    36  )
    37  WHERE
    38  (COL2 - COL1 > 1 OR COL2 IS NULL OR COL3 IS NULL)
    39  )
    40  WHERE OUTPUT != '-';
    OUTPUT                                                                         
    1-5                                                                            
    8-10                                                                           
    13-16                                                                          
    23-24

  • How could I replace hard coded value in my sql query with constant value?

    Hi all,
    Could anyone help me how to replace hardcoded value in my sql query with constant value that might be pre defined .
    PROCEDURE class_by_day_get_bin_data
         in_report_parameter_id   IN   NUMBER,
         in_site_id               IN   NUMBER,
         in_start_date_time       IN   TIMESTAMP,
         in_end_date_time         IN   TIMESTAMP,
         in_report_level_min      IN   NUMBER,
         in_report_level_max      IN   NUMBER
    IS
      bin_period_length   NUMBER(6,0); 
    BEGIN
      SELECT MAX(period_length)
         INTO bin_period_length
        FROM bin_data
         JOIN site_to_data_source_lane_v
           ON bin_data.data_source_id = site_to_data_source_lane_v.data_source_id
         JOIN bin_types
           ON bin_types.bin_type = bin_data.bin_type 
       WHERE site_to_data_source_lane_v.site_id = in_site_id
         AND bin_data.start_date_time     >= in_start_date_time - numtodsinterval(1, 'DAY')
         AND bin_data.start_date_time     <  in_end_date_time   + numtodsinterval(1, 'DAY')
         AND bin_data.bin_type            =  2
         AND bin_data.period_length       <= 60;
      --Clear the edr_class_by_day_bin_data temporary table and populate it with the data for the requested
      --report.
      DELETE FROM edr_class_by_day_bin_data;
       SELECT site_to_data_source_lane_v.site_id,
             site_to_data_source_lane_v.site_lane_id,
             site_to_data_source_lane_v.site_direction_id,
             site_to_data_source_lane_v.site_direction_name,
             bin_data_set.start_date_time,
             bin_data_set.end_date_time,
             bin_data_value.bin_id,
             bin_data_value.bin_value
        FROM bin_data
        JOIN bin_data_set
          ON bin_data.bin_serial = bin_data_set.bin_serial
        JOIN bin_data_value
          ON bin_data_set.bin_data_set_serial = bin_data_value.bin_data_set_serial
        JOIN site_to_data_source_lane_v
             ON bin_data.data_source_id = site_to_data_source_lane_v.data_source_id
            AND bin_data_set.lane = site_to_data_source_lane_v.data_source_lane_id
        JOIN (
               SELECT CAST(report_parameter_value AS NUMBER) lane_id
                 FROM report_parameters
                WHERE report_parameters.report_parameter_id    = in_report_parameter_id
                  AND report_parameters.report_parameter_group = 'LANE'
                  AND report_parameters.report_parameter_name  = 'LANE'
             ) report_lanes
          ON site_to_data_source_lane_v.site_lane_id = report_lanes.lane_id
        JOIN (
               SELECT CAST(report_parameter_value AS NUMBER) class_id
                 FROM report_parameters
                WHERE report_parameters.report_parameter_id    = in_report_parameter_id
                  AND report_parameters.report_parameter_group = 'CLASS'
                  AND report_parameters.report_parameter_name  = 'CLASS'
             ) report_classes
          ON bin_data_value.bin_id = report_classes.class_id
        JOIN edr_rpt_tmp_inclusion_table
          ON TRUNC(bin_data_set.start_date_time) = TRUNC(edr_rpt_tmp_inclusion_table.date_time)
       WHERE site_to_data_source_lane_v.site_id = in_site_id
         AND bin_data.start_date_time     >= in_start_date_time - numtodsinterval(1, 'DAY')
         AND bin_data.start_date_time     <  in_end_date_time   + numtodsinterval(1, 'DAY')
         AND bin_data_set.start_date_time >= in_start_date_time
         AND bin_data_set.start_date_time <  in_end_date_time
         AND bin_data.bin_type            =  2
         AND bin_data.period_length       =  bin_period_length;
    END class_by_day_get_bin_data;In the above code I'm using the hard coded value 2 for bin type
    bin_data.bin_type            =  2But I dont want any hard coded number or string in the query.
    How could I replace it?
    I defined conatant value like below inside my package body where the actual procedure comes.But I'm not sure whether I have to declare it inside package body or inside the procedure.
    bin_type     CONSTANT NUMBER := 2;But it does't look for this value. So I'm not able to get desired value for the report .
    Thanks.
    Edited by: user10641405 on May 29, 2009 1:38 PM

    Declare the constant inside the procedure.
    PROCEDURE class_by_day_get_bin_data(in_report_parameter_id IN NUMBER,
                                        in_site_id             IN NUMBER,
                                        in_start_date_time     IN TIMESTAMP,
                                        in_end_date_time       IN TIMESTAMP,
                                        in_report_level_min    IN NUMBER,
                                        in_report_level_max    IN NUMBER) IS
      bin_period_length NUMBER(6, 0);
      v_bin_type     CONSTANT NUMBER := 2;
    BEGIN
      SELECT MAX(period_length)
        INTO bin_period_length
        FROM bin_data
        JOIN site_to_data_source_lane_v ON bin_data.data_source_id =
                                           site_to_data_source_lane_v.data_source_id
        JOIN bin_types ON bin_types.bin_type = bin_data.bin_type
       WHERE site_to_data_source_lane_v.site_id = in_site_id
         AND bin_data.start_date_time >=
             in_start_date_time - numtodsinterval(1, 'DAY')
         AND bin_data.start_date_time <
             in_end_date_time + numtodsinterval(1, 'DAY')
         AND bin_data.bin_type = v_bin_type
         AND bin_data.period_length <= 60;
      --Clear the edr_class_by_day_bin_data temporary table and populate it with the data for the requested
      --report.
      DELETE FROM edr_class_by_day_bin_data;
      INSERT INTO edr_class_by_day_bin_data
        (site_id,
         site_lane_id,
         site_direction_id,
         site_direction_name,
         bin_start_date_time,
         bin_end_date_time,
         bin_id,
         bin_value)
        SELECT site_to_data_source_lane_v.site_id,
               site_to_data_source_lane_v.site_lane_id,
               site_to_data_source_lane_v.site_direction_id,
               site_to_data_source_lane_v.site_direction_name,
               bin_data_set.start_date_time,
               bin_data_set.end_date_time,
               bin_data_value.bin_id,
               bin_data_value.bin_value
          FROM bin_data
          JOIN bin_data_set ON bin_data.bin_serial = bin_data_set.bin_serial
          JOIN bin_data_value ON bin_data_set.bin_data_set_serial =
                                 bin_data_value.bin_data_set_serial
          JOIN site_to_data_source_lane_v ON bin_data.data_source_id =
                                             site_to_data_source_lane_v.data_source_id
                                         AND bin_data_set.lane =
                                             site_to_data_source_lane_v.data_source_lane_id
          JOIN (SELECT CAST(report_parameter_value AS NUMBER) lane_id
                  FROM report_parameters
                 WHERE report_parameters.report_parameter_id =
                       in_report_parameter_id
                   AND report_parameters.report_parameter_group = 'LANE'
                   AND report_parameters.report_parameter_name = 'LANE') report_lanes ON site_to_data_source_lane_v.site_lane_id =
                                                                                         report_lanes.lane_id
          JOIN (SELECT CAST(report_parameter_value AS NUMBER) class_id
                  FROM report_parameters
                 WHERE report_parameters.report_parameter_id =
                       in_report_parameter_id
                   AND report_parameters.report_parameter_group = 'CLASS'
                   AND report_parameters.report_parameter_name = 'CLASS') report_classes ON bin_data_value.bin_id =
                                                                                            report_classes.class_id
          JOIN edr_rpt_tmp_inclusion_table ON TRUNC(bin_data_set.start_date_time) =
                                              TRUNC(edr_rpt_tmp_inclusion_table.date_time)
         WHERE site_to_data_source_lane_v.site_id = in_site_id
           AND bin_data.start_date_time >=
               in_start_date_time - numtodsinterval(1, 'DAY')
           AND bin_data.start_date_time <
               in_end_date_time + numtodsinterval(1, 'DAY')
           AND bin_data_set.start_date_time >= in_start_date_time
           AND bin_data_set.start_date_time < in_end_date_time
           AND bin_data.bin_type = v_bin_type
           AND bin_data.period_length = bin_period_length;
    END class_by_day_get_bin_data;

  • Need help writing a query for following scenario

    Hi all, I need some help writing a query for the following case:
    One Table : My_Table
    Row Count: App 5000
    Columns of Interest: AA and BB
    Scenario: AA contains some names of which BB contains the corresponding ID. Some
    names are appearing more than once with different IDs. For example,
    AA BB
    Dummy 10
    Me 20
    Me 30
    Me 40
    You 70
    Me 50
    Output needed: I need to write a query that will display only all the repeating names with their corresponding IDs excluding all other records.
    I would appreciate any input. Thanks

    Is it possible to have a records with the same values for AA and BB? Are you interested in these rows or do you only care about rows with the same value of AA and different BB?
    With a slight modification of a previous posting you can only select those rows that have distinct values of BB for the same value of AA
    WITH t AS (
    SELECT 'me' aa, 10 bb FROM dual
    UNION ALL
    SELECT 'me' aa, 20 bb FROM dual
    UNION ALL
    SELECT 'you' aa, 30 bb FROM dual
    UNION ALL
    SELECT 'you' aa, 30 bb FROM dual
    SELECT DISTINCT aa, bb
      FROM (SELECT aa, bb, COUNT(DISTINCT bb) OVER(PARTITION BY aa) cnt FROM t)
    WHERE cnt > 1;

  • Query with order by taking 1 hr

    Hi,
    Query with order by taking 1 hr, without order by taking 9 seconds,
    pls tell me ,wat will be the reason and how to tune.
    Query:
    SELECT
    T17.CONFLICT_ID,
    T17.LAST_UPD,
    T17.CREATED,
    T17.LAST_UPD_BY,
    T17.CREATED_BY,
    T17.MODIFICATION_NUM,
    T17.ROW_ID,
    T1.ACCNT_TYPE_CD,
    T36.X_BRIDGESTATION,
    T36.X_CTI_PIN,
    T36.X_FLOOR,
    T36.X_SEGMENT2,
    T36.X_SEGMENT3,
    T36.X_CONTACT_STATUS,
    T36.X_DEALING_CODE,
    T36.X_DELETE,
    T36.X_DEPARTMENT,
    T36.X_DIRECT_MKT,
    T36.X_FASS_LAST_CONTACT_DATE,
    T36.X_SEGMENT1,
    T36.X_LAST_TRAINED_DATE,
    T36.X_LEGAL_CONSENT,
    T36.X_LOCAL_FST_NAME,
    T36.X_LOCAL_LAST_NAME,
    T36.X_PREF_LANG,
    T36.X_PROD_BLEND,
    T36.X_SALUTATION,
    T36.X_BSC_SIDE,
    T36.X_END_USR_ACT,
    T36.X_PRIM_ASSET_CLASS,
    T36.X_SEC_ASSET_CLASS,
    T36.X_STATUS,
    T36.X_LANGUAGE,
    T36.X_SUPPRESS_SMS_FLG,
    T36.X_TRAINING_ADDRESS,
    T36.X_UPD_TYPE,
    T36.X_XTRA_UPD,
    T36.X_XTRA_ID,
    T36.X_ESERVICE_USER,
    T36.X_SALES_COMMENTS,
    T36.PR_DEPT_OU_ID,
    T1.INTEGRATION_ID,
    T1.PRTNR_FLG,
    T36.BIRTH_DT,
    T36.CELL_PH_NUM,
    T9.ATTRIB_07,
    T5.LAST_UPD,
    T36.EMAIL_ADDR,
    T36.EMP_FLG,
    T36.FAX_PH_NUM,
    T36.FST_NAME,
    T36.HOME_PH_NUM,
    T36.JOB_TITLE,
    T36.LAST_NAME,
    T36.SEX_MF,
    T36.PER_TITLE,
    T36.MID_NAME,
    T36.OWNER_PER_ID,
    T17.NAME,
    T36.PERSON_UID,
    T36.PRIV_FLG,
    T1.NAME,
    T29.PR_ADDR_ID,
    T36.PR_REP_DNRM_FLG,
    T36.PR_REP_MANL_FLG,
    T36.PR_REP_SYS_FLG,
    T36.PR_MKT_SEG_ID,
    T36.PR_GRP_OU_ID,
    T36.PR_OPTY_ID,
    T36.PR_PER_ADDR_ID,
    T36.PR_PER_PAY_PRFL_ID,
    T36.PR_POSTN_ID,
    T36.PR_RESP_ID,
    T19.OWN_INST_ID,
    T19.INTEGRATION_ID,
    T36.SOC_SECURITY_NUM,
    T29.STATUS,
    T36.SUPPRESS_CALL_FLG,
    T36.SUPPRESS_MAIL_FLG,
    T36.WORK_PH_NUM,
    T36.BU_ID,
    T36.PR_ALT_PH_NUM_ID,
    T36.PR_EMAIL_ADDR_ID,
    T36.PR_SYNC_USER_ID,
    T18.SHARE_HOME_PH_FLG,
    T36.PR_REGION_ID,
    T36.NATIONALITY,
    T36.CITIZENSHIP_CD,
    T36.AGENT_FLG,
    T36.MEMBER_FLG,
    T13.PR_EMP_ID,
    T36.PR_OU_ADDR_ID,
    T33.PR_EMP_ID,
    T13.PR_EMP_ID,
    T21.LOGIN,
    T26.LOGIN,
    T25.PR_FAX_NUM_ID,
    T36.PR_INDUST_ID,
    T36.PR_NOTE_ID,
    T1.PR_POSTN_ID,
    T36.PR_PROD_LN_ID,
    T25.PR_SMS_NUM_ID,
    T36.PR_SECURITY_ID,
    T6.NAME,
    T36.MED_SPEC_ID,
    T36.PR_STATE_LIC_ID,
    T36.PR_TERR_ID,
    T36.PROVIDER_FLG,
    T36.CUST_SINCE_DT,
    T34.ADDR,
    T34.CITY,
    T34.COUNTRY,
    T34.ZIPCODE,
    T34.STATE,
    T4.NAME,
    T36.CURR_PRI_LST_ID,
    T27.ROW_STATUS,
    T22.LOGIN,
    T2.CITY,
    T2.COUNTRY,
    T2.ZIPCODE,
    T2.COUNTY,
    T2.ADDR,
    T20.X_ACC_CLASS,
    T20.X_FS_INLIMITS,
    T20.X_PRIORITY,
    T20.X_DC_LOC,
    T20.X_SERV_PROV_ID,
    T20.X_FS_LOC,
    T20.X_LOCAL_ACCOUNT_NAME,
    T20.NAME,
    T20.LOC,
    T20.PR_BL_ADDR_ID,
    T20.PR_BL_PER_ID,
    T20.PR_SHIP_ADDR_ID,
    T20.PR_SHIP_PER_ID,
    T20.OU_NUM,
    T16.ROW_ID,
    T20.PR_SRV_AGREE_ID,
    T16.ROW_ID,
    T15.PRIM_MARKET_CD,
    T16.ROW_ID,
    T14.CITY,
    T14.COUNTRY,
    T14.ZIPCODE,
    T14.STATE,
    T14.ADDR,
    T35.NAME,
    T32.NAME,
    T8.CHRCTR_ID,
    T32.PRIV_FLG,
    T3.LOGIN,
    T31.LOGIN,
    T36.ROW_ID,
    T36.MODIFICATION_NUM,
    T36.CREATED_BY,
    T36.LAST_UPD_BY,
    T36.CREATED,
    T36.LAST_UPD,
    T36.CONFLICT_ID,
    T36.PAR_ROW_ID,
    T25.ROW_ID,
    T25.MODIFICATION_NUM,
    T25.CREATED_BY,
    T25.LAST_UPD_BY,
    T25.CREATED,
    T25.LAST_UPD,
    T25.CONFLICT_ID,
    T25.PAR_ROW_ID,
    T18.ROW_ID,
    T18.MODIFICATION_NUM,
    T18.CREATED_BY,
    T18.LAST_UPD_BY,
    T18.CREATED,
    T18.LAST_UPD,
    T18.CONFLICT_ID,
    T18.PAR_ROW_ID,
    T9.ROW_ID,
    T9.MODIFICATION_NUM,
    T9.CREATED_BY,
    T9.LAST_UPD_BY,
    T9.CREATED,
    T9.LAST_UPD,
    T9.CONFLICT_ID,
    T9.PAR_ROW_ID,
    T19.ROW_ID,
    T19.MODIFICATION_NUM,
    T19.CREATED_BY,
    T19.LAST_UPD_BY,
    T19.CREATED,
    T19.LAST_UPD,
    T19.CONFLICT_ID,
    T19.PAR_ROW_ID,
    T27.ROW_ID,
    T24.ROW_ID,
    T23.ROW_ID,
    T2.ROW_ID,
    T28.ROW_ID,
    T16.ROW_ID,
    T11.ROW_ID,
    T14.ROW_ID,
    T35.ROW_ID,
    T8.ROW_ID,
    T30.ROW_ID,
    T7.ROW_ID
    FROM
    SIEBEL.S_ORG_EXT T1,
    SIEBEL.S_ADDR_PER T2,
    SIEBEL.S_USER T3,
    SIEBEL.S_PRI_LST T4,
    SIEBEL.S_PER_DEDUP_KEY T5,
    SIEBEL.S_MED_SPEC T6,
    SIEBEL.S_PARTY T7,
    SIEBEL.S_CON_CHRCTR T8,
    SIEBEL.S_CONTACT_X T9,
    SIEBEL.S_POSTN T10,
    SIEBEL.S_CON_ADDR T11,
    SIEBEL.S_POSTN T12,
    SIEBEL.S_POSTN T13,
    SIEBEL.S_ADDR_PER T14,
    SIEBEL.S_ORG_EXT_FNX T15,
    SIEBEL.S_PARTY T16,
    SIEBEL.S_PARTY T17,
    SIEBEL.S_EMP_PER T18,
    SIEBEL.S_CONTACT_SS T19,
    SIEBEL.S_ORG_EXT T20,
    SIEBEL.S_USER T21,
    SIEBEL.S_USER T22,
    SIEBEL.S_CON_ADDR T23,
    SIEBEL.S_PARTY T24,
    SIEBEL.S_CONTACT_LOYX T25,
    SIEBEL.S_USER T26,
    SIEBEL.S_POSTN_CON T27,
    SIEBEL.S_PARTY_PER T28,
    SIEBEL.S_POSTN_CON T29,
    SIEBEL.S_PARTY T30,
    SIEBEL.S_USER T31,
    SIEBEL.S_CHRCTR T32,
    SIEBEL.S_POSTN T33,
    SIEBEL.S_ADDR_PER T34,
    SIEBEL.S_CONTACT_XM T35,
    SIEBEL.S_CONTACT T36
    WHERE
    T36.PR_DEPT_OU_ID = T1.PAR_ROW_ID (+) AND
    T1.PR_POSTN_ID = T33.PAR_ROW_ID (+) AND
    T36.PR_POSTN_ID = T13.PAR_ROW_ID (+) AND
    T17.ROW_ID = T29.CON_ID (+) AND T29.POSTN_ID (+) = '1-ERPTObjMgrSqlLog' AND
    T33.PR_EMP_ID = T21.PAR_ROW_ID (+) AND
    T13.PR_EMP_ID = T26.PAR_ROW_ID (+) AND
    T36.PR_PER_ADDR_ID = T34.ROW_ID (+) AND
    T36.MED_SPEC_ID = T6.ROW_ID (+) AND
    T36.CURR_PRI_LST_ID = T4.ROW_ID (+) AND
    T17.ROW_ID = T5.PERSON_ID (+) AND
    T17.ROW_ID = T36.PAR_ROW_ID AND
    T17.ROW_ID = T25.PAR_ROW_ID (+) AND
    T17.ROW_ID = T18.PAR_ROW_ID (+) AND
    T17.ROW_ID = T9.PAR_ROW_ID AND
    T17.ROW_ID = T19.PAR_ROW_ID (+) AND
    T36.PR_POSTN_ID = T27.POSTN_ID AND T36.ROW_ID = T27.CON_ID AND
    T27.POSTN_ID = T24.ROW_ID AND
    T27.POSTN_ID = T12.PAR_ROW_ID (+) AND
    T12.PR_EMP_ID = T22.PAR_ROW_ID (+) AND
    T36.PR_OU_ADDR_ID = T23.ADDR_PER_ID (+) AND T36.PR_DEPT_OU_ID = T23.ACCNT_ID (+) AND
    T36.PR_OU_ADDR_ID = T2.ROW_ID (+) AND
    T36.PR_DEPT_OU_ID = T28.PARTY_ID (+) AND T36.ROW_ID = T28.PERSON_ID (+) AND
    T36.PR_DEPT_OU_ID = T16.ROW_ID (+) AND
    T36.PR_DEPT_OU_ID = T20.PAR_ROW_ID (+) AND
    T36.PR_DEPT_OU_ID = T15.PAR_ROW_ID (+) AND
    T29.PR_ADDR_ID = T11.ADDR_PER_ID (+) AND T29.CON_ID = T11.CONTACT_ID (+) AND
    T29.PR_ADDR_ID = T14.ROW_ID (+) AND
    T36.X_SEGMENT1 = T35.ROW_ID (+) AND
    T36.PR_MKT_SEG_ID = T8.ROW_ID (+) AND
    T8.CHRCTR_ID = T32.ROW_ID (+) AND
    T1.PR_POSTN_ID = T30.ROW_ID (+) AND
    T1.PR_POSTN_ID = T10.PAR_ROW_ID (+) AND
    T10.PR_EMP_ID = T3.PAR_ROW_ID (+) AND
    T36.PR_SYNC_USER_ID = T7.ROW_ID (+) AND
    T36.PR_SYNC_USER_ID = T31.PAR_ROW_ID (+) AND
    ((T36.X_DELETE = 'N') AND
    (T36.PRIV_FLG = 'N' AND T17.PARTY_TYPE_CD != 'Suspect')) AND
    (T9.ATTRIB_10 = 'NObjMgrSqlLog')
    ORDER BY
    T36.LAST_NAME, T36.FST_NAME

    @afalty, the story you are telling about the order of the tables being important, from smallest to largest, et cetera, is only partially true and only when dealing with the rule based optimizer. Nowadays, almost everybody is using the cost based optimizer, so these remarks can very likely be ignored.
    @original poster:
    I think you are "measuring" the elapsed time by using TOAD, am I right? And you are probably writing 9 seconds, because it took TOAD 9 seconds before it could display the first records. If you would scroll down to the last record, it is likely taking much more time. A sort operation costs resources and time, but very unlikely this much.
    When you want your rows sorted, all rows must have been visited before you know for sure which one is the smallest. That's why it takes longer to display the first row. Without an order by, the query can begin popping out rows much faster.
    Regards,
    Rob.

  • Incorrect warning when parsing query with group by clause

    I am using SQL Developer 4.0.0.13.80 with JDK 1.7.0_51 x64 on Windows 8.1
    I have the following SQL, which works perfectly:
    select substr(to_char(tot_amount), 0, 1) as digit, count(*)
    from transactions
    where tot_amount <> 0
    group by substr(to_char(tot_amount), 0, 1)
    order by digit;
    However, SQL Developer is yellow-underlining the first line, telling me that:
    SELECT list is inconsistent with GROUP BY; amend GROUP BY clause to: substr(to_char(rep_tot_amount), 0, 1), substr(to_char(rep_tot_amount),
    which is clearly wrong.
    Message was edited by: JamHan
    Added code formatting.

    Hello,
    I also have found the same issue with the GROUP BY hint. Another problem I found is that the hint suggests to amend the GROUP BY members to add also constant values that are included in the SELECTed columns and whenever those constants include strings with spaces, it generates an invalid query. Normally, constant values won't affect grouping functions and as such they can be omitted from the GROUP BY members, but it seems SQL Dev thinks it differently.
    For example, if you try the following query:
    SELECT d.DNAME, sum(e.sal) amt, 'Total salary' report_title, 100 report_nr
    FROM scott.emp e, scott.dept d
    WHERE e.DEPTNO = d.DEPTNO
    GROUP BY d.DNAME;
    when you hover the mouse pointer on the yellow hint, a popup will show the following message:
    SELECT list inconsistent with GROUP BY; amend GROUP BY clause to:
    d.DNAME, 'Total, 100
    If you click on the hint, it will amend the group by members to become:
    GROUP BY d.DNAME, 'Total, 100;
    that is clearly incorrect syntax. You may notice that after the change the yellow hint is still there, suggesting to amend further the GROUP BY members. If you click again on the hint, you will end with the following:
    GROUP BY d.DNAME, 'Total, 100;
    , 'Total, 100
    and so on.
    I am not sure if this behaviour was already known (Vadim??), but it would be nice if somebody could file a bug against it.
    Finally when writing big queries with complex functions and constant columns, those yellow lines extend all over the select list and they are visually annoying, so I wonder if there is a way to disable the GROUP BY hint until it gets fixed.
    Thanks for any suggestion,
    Paolo

  • Query with characteristics and NO Key figures

    Hi Everyone,
    I need to create a query with 3 char ... customer segment, customer type, climate zone. All are characteristics and there are no key figures.
    I went through the forum reading similar posts but couldn't figure out the best way.
    It can be done using Replacement path, Create formula variable with replacement path of your characteristic. Some posts also talked about writing some code.
    Like to know the best way of making this query.
    Can you please give me step by step procedure.
    Thanks,
    Kumar.

    I thought, if there are no key figures the query designer might give an error while saving, like "no key figures defined" or something like that. Thats why I came up with the question.
    I still have to document the detail requirement of user and he is not available. So just figuring out all the possibilities.

  • What r the steps to be taken before writing a query

    Hi
    What r the steps to be taken before writing a query
    regds

    First step is learn to write correctly more or less because in SQL you cannot write r inestead of are. Second step is read Oracle concepts manual (http://tahiti.oracle.com) to understand the basics of Oracle. And then continue with other docs like Preformance tuning guide, application developers guide etc. Probably then you can ask more precise question and others can provide more precise answers :)

  • Query with 2 variables

    I have a query with two variables (Employee and Date). The query is working fine if both of the variables are check and values assigned. But if only one variable is checked and a value assigned then the query will return 0 results. Is it possible that the query cannot work with only one variable out of the 2? Do I need a workaround or am i doing something wrong?
    Here is the query:
    SELECT T0.DocNum, T0.DocDate, T0.DocDueDate, T0.CardCode, T0.CardName, T0.Address, T0.DocTotal, T0.U_Employee, T1.firstName,T1.lastName,  T0.Comments FROM OVPM T0 LEFT JOIN OHEM T1 ON T0.U_EMPLOYEE = T1.FIRSTNAME' 'T1.LASTNAME WHERE T0.DocType = 'A' AND T0.U_EMPLOYEE = [%0] AND T0.DocDate =[%1].
    Thank you so much for your help,
    Irina Stanca

    AFAIK, at least with 'complex queries' unchecked parameter gets
    some default/blank value. Therefore, you should allow default values in your
    WHERE clause.
    You want: WHERE T0.COL = @VAR
    You write: WHERE (T0.COL = @VAR OR [logical test for @VAR is a default value])
    Snippets like this may help you in finding out that default value:
    -- snip --
    /SELECT FROM [dbo].[OHEM] T9/
    declare @VAR_EMPL as char(20)
    /* WHERE */
    set @VAR_EMPL = /* T9.lastName */ '[%0]'
    /SELECT FROM [dbo].[OVPM] T8/
    declare @VAR_DATE as char(20)
    /* WHERE */
    set @VAR_DATE = /* T8.DocDate */ '[%1]'
    SELECT '@VAR_EMPL: ' + '|' + @VAR_EMPL + '|' +  '@VAR_DATE: ' + @VAR_DATE + ' DATEDIFF: ' + cast(DATEDIFF(day, CAST('1900-01-01' as datetime), CAST(@VAR_DATE as datetime)) as varchar)
    [/code]
    -- snip --
    Yes, it looks like the default value for dates is '1900-01-01'.
    Therefore, you may want to code this way
    .. WHERE (DocDate = @VAR_DATE OR DATEDIFF(day, CAST('1900-01-01' as datetime), CAST(@VAR_DATE as datetime)) > 0)
    I also noticed a date-related issue that may cause problems in complex queries
    if you work with dates from last century AND if your date format in B1 is YY instead of CCYY:
    you enter 1907 and B1 interprets it as 2007.
    HTH
    Juha

  • How to create an ABAP Query with OR logical expression in the select-where

    Hi,
    In trying to create an ABAP query with parameters. So it will select data where fields are equal to the parameters entered. The default logical expression is SELECT.. WHERE... AND.. However I want to have an OR logical expression instead of AND.. how can I attain this??
    Please help me on this.. Points will be rewarded.
    Thanks a lot.
    Regards,
    Question Man

    Hi Bhupal, Shanthi, and Saipriya,
    Thanks for your replies. But that didn't answer my question.
    Bhupal,
    You cannot just replace AND with OR in an ABAP QUERY. ABAP QUERY is a self generated SAP code. You'll just declare the tables, input parameters and output fields to be displayed and it will create a SAP standard code. If you'll try to change the code and replace the AND with OR in the SAP standard code, the system will require you to enter access key/object key for that particular query.
    Shanthi,
    Yes, that is exactly what need to have. I need to retireve DATA whenever one of the conditions was satisfied.
    Saipriya,
    Like what I have said, this is a standard SAP code so we can't do your suggestion.
    I have already tried to insert a code in the ABAP query (there's a part there wherein you can have extra code) but that didn't work. Can anybody help me on this.
    Thanks a lot.
    Points will be rewarded.
    Regards,
    Question Man

  • Error while trying to Execute the Query with Customer Exit

    Hi Experts,
           I am having a Query with Customer Exit, it is working fine for all the Employess, except for one. When i try to remove the Customer Exit it is working for her too. Below is the error i am getting.
    system error in program SAPLLRK0 and form RSRDR; CHECK_NAV_INIT_BACK
    Thanks,
    Kris.

    Hello Kris,
    Are you working with multiprovider? Please check if OSS notes 813454,840080 or 578948 are applicable in your case.
    Regards,
    Praveen

Maybe you are looking for

  • Undo BOX sentence in sapscript

    Hi, in my sapscript i´ve got the sentence BOX in order to display a frame around a window. is it possible to undo this sentece, that is, once the flow of the program has put a frame around the window is it possible to somehow erase it(or display a bl

  • Make adobe flash player the preferred player when exporting indd to pdf

    Hi, I am making a pdf using indesign.  After I export to pdf, the movie files in the pdf play automatically on quicktime (when I click on them). I need them to automatically play on adobe flash player instead.  I understand I can change the rendition

  • Analog 5.1

    Anyone know of any analog 5.1 solutions for the mac pro that have support in xp and osx?

  • Inc0/1 and arch backup at the same time

    Hi! During the inc0/1 backups I need to run additional archivelog backups. Otherwise the FRA is filled up. But then the the last part of the inc0/1 backup - the archivelog part - fails: Starting backup at 07//09/2010 current log archived released cha

  • Safari keeps unexpectedly closing!

    PLEASE HELP! safari keeps unexpectedly closing on me, I don't know what to do. This is report I keep sending to apple: Process: Safari [461] Path: /Safari.app/Contents/MacOS/Safari Identifier: com.apple.Safari Version: 3.2.1 (5525.27.1) Build Info: W