Help with one select

Hi everyone,
i have a table with three columns, where in some cases, there is NULL in name column for a specific time and for a specific id.
I need to fill the missing names, with the first previous occurence. I dont know if it possible to do so within one select.
thanks for any ideas
DATA table
id, mdate, name
15, '1.7.2008 15:00', 'A'
15, '28.7.2008 18:00', 'B'
4, '1.8.2008 15:00', 'G'
5, '1.8.2008 15:00', ''
3, '1.8.2008 18:00', 'G'
15, '5.8.2008 15:00', ''
15, '5.8.2008 17:00', ''
3, '10.8.2008 18:00', ''
15, '8.8.2008 07:00', 'F'
15, '9.8.2008 07:00', ''having data above,
for example for id = 15 i would like to fill the name column with this names.
15, '5.8.2008 15:00', 'B'
15, '5.8.2008 17:00', 'B'
15, '9.8.2008 07:00', 'F'
etc
so the result of the select should be:
15, '1.7.2008 15:00', 'A'
15, '28.7.2008 18:00', 'B'
4, '1.8.2008 15:00', 'G'
5, '1.8.2008 15:00', ''
3, '1.8.2008 18:00', 'G'
15, '5.8.2008 15:00', 'B'
15, '5.8.2008 17:00', 'B'
3, '10.8.2008 18:00', 'G'
15, '8.8.2008 07:00', 'F'
15, '9.8.2008 07:00', 'F'
select 15 as id, to_date('1.7.2008 15:00','dd.mm.yyyy hh24:mi') as mdate, 'A' as name from dual union all
select 15, to_date('28.7.2008 18:00','dd.mm.yyyy hh24:mi'), 'B' from dual union all
select 4, to_date('1.8.2008 15:00','dd.mm.yyyy hh24:mi'), 'G' from dual union all
select 5, to_date('1.8.2008 15:00','dd.mm.yyyy hh24:mi'), null from dual union all
select 3, to_date('1.8.2008 18:00','dd.mm.yyyy hh24:mi'), 'G' from dual union all
select 15, to_date('5.8.2008 15:00','dd.mm.yyyy hh24:mi'), null from dual union all
select 15, to_date('5.8.2008 17:00','dd.mm.yyyy hh24:mi'), null from dual union all
select 3, to_date('10.8.2008 18:00','dd.mm.yyyy hh24:mi'), null from dual union all
select 15, to_date('8.8.2008 07:00','dd.mm.yyyy hh24:mi'), 'F' from dual union all
select 15, to_date('9.8.2008 07:00','dd.mm.yyyy hh24:mi'), null from dual

Try this:
update tab t1
set t1.name = ( select t2.name
                  from tab t2
                 where t2.id = t1.id
                   and t2.mdate = ( select max( t3.mdate )
                                      from tab t3
                                     where t3.mdate < t1.mdate
                                       and t3.id = t2.id ) )
where t1.name is null;

Similar Messages

  • I need help with a SELECT query - help!

    Hello, I need help with a select statement.
    I have a table with 2 fields as shown below
    Name | Type
    John | 1
    John | 2
    John | 3
    Paul | 1
    Paul | 2
    Paul | 3
    Mark | 1
    Mark | 2
    I need a query that returns everything where the name has type 1 or 2 but not type 3. So in the example above the qery should bring back all the "Mark" records.
    Thanks,
    Ian

    Or, if the types are sequential from 1 upwards you could simply do:-
    SQL> create table t as
      2  select 'John' as name, 1 as type from dual union
      3  select 'John',2 from dual union
      4  select 'John',3 from dual union
      5  select 'Paul',1 from dual union
      6  select 'Paul',2 from dual union
      7  select 'Paul',3 from dual union
      8  select 'Paul',4 from dual union
      9  select 'Mark',1 from dual union
    10  select 'Mark',2 from dual;
    Table created.
    SQL> select name
      2  from t
      3  group by name
      4  having count(*) <= 2;
    NAME
    Mark
    SQL>Or another alternative if they aren't sequential:
    SQL> ed
    Wrote file afiedt.buf
      1  select name from (
      2    select name, max(type) t
      3    from t
      4    group by name
      5    )
      6* where t < 3
    SQL> /
    NAME
    Mark
    SQL>Message was edited by:
    blushadow

  • Need some help with the Select query.

    Need some help with the Select query.
    I had created a Z table with the following fields :
    ZADS :
    MANDT
    VKORG
    ABGRU.
    I had written a select query as below :
    select single vkorg abgru from ZADS into it_rej.
    IT_REJ is a Work area:
    DATA : BEGIN OF IT_REJ,
            VKORG TYPE VBAK-VKORG,
            ABGRU TYPE VBAP-ABGRU,
           END OF IT_REJ.
    This is causing performance issue. They are asking me to include the where condition for this select query.
    What should be my select query here?
    Please suggest....
    Any suggestion will be apprecaiated!
    Regards,
    Developer

    Hello Everybody!
    Thank you for all your response!
    I had changes this work area into Internal table and changed the select query. PLease let me know if this causes any performance issues?
    I had created a Z table with the following fields :
    ZADS :
    MANDT
    VKORG
    ABGRU.
    I had written a select query as below :
    I had removed the select single and insted of using the Structure it_rej, I had changed it into Internal table 
    select vkorg abgru from ZADS into it_rej.
    Earlier :
    IT_REJ is a Work area:
    DATA : BEGIN OF IT_REJ,
    VKORG TYPE VBAK-VKORG,
    ABGRU TYPE VBAP-ABGRU,
    END OF IT_REJ.
    Now :
    DATA : BEGIN OF IT_REJ occurs 0,
    VKORG TYPE VBAK-VKORG,
    ABGRU TYPE VBAP-ABGRU,
    END OF IT_REJ.
    I guess this will fix the issue correct?
    PLease suggest!
    Regards,
    Developer.

  • How to show two seperate pivot tables with one select column

    Hi All
    My client wishes to have two pivot tables, one showing positive results and the other showing negative results.
    For Example:
    DIMENSION
    BUSINESS A          1000
    BUSINESS B          500
    BUSINESS C          100
    DIMENSION
    BUSINESS A          -1000
    BUSINESS B          -500
    BUSINESS C          -100
    Is it possible to then select the different DIMENSION with one select column for both?
    Thanks

    Not sure I got it right try this
    for Number column pull twice and set col*-1
    use 2 pivot table for each number type
    cool as ~ http://cool-bi.com

  • Search help with new selection within if more than 500 entries

    Dear all,
    I created a new search help and this works fine ... If I compare my search help with a default search help from SAP,  I have 1 small feature that not seems to work ... With the default one, it is possible to make a new selection within the search help by clicking on the arrow down :
    If I look at my search help, I don't have the possibility to make a new selection :
    Does anyone how this can be done ?
    Thanks in advance !
    Greetz,
    Kurt.

    HI,
    Here are the general steps to get you started.
    1. Identify the search help being used (on the ship-to-party field, F1 then Tech Info). I believe you want the collective search help SD_DEBI.
    2. Create your own search help with the fields you want to use with SE11, like 'ZDEBI' as an example.
    3. Append 'ZDEBI' to SD_DEBI. (Goto->Append Search Help).
    4. Clean things up by "Hiding" the old search help. In the 'Included Search Help' tab of the collective search help SD_DEBI, there is a check box that you can tick to hide included search helps.

  • Need Help with One to One Mapping in SQL

    Can aynone please design me tables in Oracle .
    I want to have a two tables with one to one mapping .
    Following is the scenario.
    I have an Employee object and a Parking Space Object. The have a one to one relation i.e., an employee will always be associated to only one parking space, that parking space should not be associated to any other employee.
    It would be a great help .

    sb92075 wrote:
    We don't do homework assignments.I used to do my own... seems like a novel concept now-a-days :)

  • Is it possible to make a search help with dynamic  selection table?

    Hi Experts,
    Is it possible to create search helps with dynamic seletion tables means
    i dont know the selection table names at the time of creation of search help.
    These tables will be determined at runtime.
    if yes, Please give an idea how to create and pass the table names at runtime.
    Thanks
    Yogesh Gupta

    Hi Yogesh,
    Create and fill your itab and show it with FM F4IF_INT_TABLE_VALUE_REQUEST
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'field to return from itab'
          dynpprog        = sy-repid
          dynpnr          = sy-dynnr
          dynprofield     = 'field on your screen to be filled'
          stepl           = sy-stepl
          window_title    = 'some text'
          value_org       = 'S'
        TABLES
          value_tab       = itab
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 3.
    Darley

  • 2 minor issues need help with one BBM and one email

    I am hoping someone can help with this
    the BBM issue is one of my contacts that has the z10 doesn't show option for my to video chat with him all my other contacts do and he has it displayed on his side and all his options are set same as mine
    second question is since i set up my activesync email it has pushed a password on my phone everytime it goes to sleep and i go to options and cannot turn off the device password option.
    Hope someone has some ideas

    It sounds like the account you connected to for ActiveSync has an IT policy that requires the password. You can't get around it. You'd have to talk to them.
    For BBM, have you verified the PIN is correct on each end? Can you BBM directly with this person? You both have to be on wifi, as well.
    1. Please thank those who help you by clicking the "Like" button at the bottom of the post that helped you.
    2. If your issue has been solved, please resolve it by marking the post "Solution?" which solved it for you!

  • Help with GBIC selection LH vs ZX

    Dear Support,
    I now have the estimated Attenuation values from our fibre provider, and wondering if anyone could help with determining if I can utilise the cheaper (LH modules) across the 20 & 15 KM streches.
    Thanks in advance (many thanks to Josh for helping out with my previous post - below)
    HQ to DC1 = 1310nm: 2.5dB, 1550nm: 2.2dB.
    DC1 to DC2 = 1310nm: 14.5dB , 1550nm: 13.1dB
    DC2 to HQ = 1310nm: 10.1dB, 1550nm: 9dB
    =========================================
    Dear Support,
    Sorry but new to optical networking, but need some assistance on an upgrade that we are performing.
    We currently have two data centres that hold our servers and are planning to upgrade from LES circuits to Gigabit links, and triangulate our topology. (effectively a ring topology)
    I have already spoken to our proposed fibre provider and they have provide me with rough distances, but due to one of the data centres being more than 10 km away we need to use ZX based GBICs. Summary of distances below;
    HQ -> dc1 (1 – 2 km)
    HQ -> dc2 (15 km)
    Dc1 -> dc2 (20 km)
    From our HQ to dc1 we will use LH (via a GLC-LH-SM= in a 2970G) and a to dc2 we will use ZX (via a GLC-ZX-SM= in another 2970G)
    From DC1 to HQ we will use LH (via a WS-G5486 in a 7204VXR) and a to dc2 we will use ZX (via a WS-G5487 in another 7204VXR)
    From DC2 to HQ we will use ZX (via a WS-G5487 in a 7204VXR) and a to dc1 we will use ZX (via a WS-G5487 in another 7204VXR)
    Hope this doesn’t confuse things more.
    Now to the question.
    From the Cisco web site it mentions the following;
    When shorter distances of single-mode fiber are used, it might be necessary to insert an in-line optical attenuator in the link to avoid overloading the receiver:
    • A 5-dB or 10-dB inline optical attenuator should be inserted between the fiber-optic cable plant and the receiving port on the Cisco 1000BASE-ZX GBIC at each end of the link whenever the fiber-optic cable span is less than 15.5 miles (25 km).
    We haven’t yet had the fibre survey performed, but once they have advised me of the attenuation on the link, how should I calculate what level of “in-line optical attenuator” I should need or should all reputable fibre providers advise me of this detail.
    Thanks in advance.
    Regards, Adrian

    Summary of Optical Levels:
    GLC-ZX-SM:
    Transmit: 0 to +5
    Receive: -23 to 0
    GLC-LH-SM:
    Transmit: -9.5 to -3
    Receive: -20 to -3
    G5486:
    Transmit: -9.5 to -3
    Receive: -20 to -3
    G5487:
    Transmit: 0 to 5.2
    Receive: -24 to -3
    Given the above:
    HQ -> DC2: maximum receive level will be 5-10.1 = -5.1 dB, which is OK for the G5487
    HQ <- DC2: maximum receive level will be 5.2-10.1 = -4.9 dB, which is OK for the GLC-ZX-SM
    HQ -> DC1: maximum receive level will be -3-2.5 = -5.5 dB, which is OK for the G5486
    HQ <- DC1: maximum receive level will be -3-2.5 = -5.5 dB, which is OK for the GLC-LH-SM
    DC1 -> DC2:maximum receive level will be 5.2-14.5 = -9.3 dB, which is OK for the G5487
    DC1 <- DC2:maximum receive level will be 5.2-14.5 = -9.3 dB, which is OK for the G5487
    Therefore, you do not need attenuators anywhere.
    Now, to your next queston. If you used the LH modules, you the minimum possible receive levels now become:
    HQ -> DC2: minimum possible receive level will be -9.5-10.1 = -19.6 dB, which is only just OK for the G5486
    HQ <- DC2: minimum possible receive level will be -9.5-10.1 = -19.6 dB, which is only just OK for the G5486
    DC1 -> DC2: minimum possible receive level will be -9.5-14.2 = -24 dB, which is too low for the G5486
    DC1 <- DC2: minimum possible receive level will be -9.5-14.2 = -24 dB, which is too low for the G5486
    Therefore, my recommendation is to stick with the ZX modules for these links.
    Hope that helps - pls rate the post if it does.
    Paresh

  • Help with record selection/grouping

    I am trying to create a report as follows, but am running into some problems with my selection/grouping:
    Data Structure (each line is a separate record; each employee has 2 records)
    Employee             TaskID      TaskStatus           Marker         Date Modified
    1                               A                CLOSED             x
    1                               B                OPEN                  N/A
    2                               A                CLOSED              y
    2                               B                OPEN                 N/A
    3                               A                CLOSED             x
    3                               B                CLOSED            N/A
    4                               A                CLOSED             y
    4                               B                CLOSED           N/A
    Report Requirements
    I want a report that displays only employee number and the date that Task B was completed for all employees, and I want these records grouped based on Task B's Task Status (no problem.  I did this).
    However, I want to sub-group these Task B records (within Task Status) by the Marker field for Task A records!  (I can't figure this out?  If I only pull in Task B records, how can I compare what the associated employee has as a marker for their Task A record?)
    Again, I only want to display data from the employee's Task B record, while subgrouping on a field value from the empoyee's Task A record.  The report would be structured as follows:
    Task B (OPEN), with Task A - Marker (x)
                     {Date Modified}
    Task B (OPEN), with Task A - Marker (y)
                     {Date Modified}
    Task B (CLOSED), with Task A - Marker (x)
                    {Date Modified}
    Task B (CLOSED), with Task A - Marker (y)
                      {Date Modified}
    Thanks.
    Gary

    The easiest way would be to use an SQL Command that returns both the Task A and Task B data on one record.  Something like (MS SQL):
    select b.employee, b.taskid as task_b, b.task_status_b, b.marker as marker_b, b.date_modified as date_modified_b,
        a.taskid as task_a, a.task_status_a, a.marker as marker_a, a.date_modified as date_modified_a
    from table a, table b
    where a.employee = b.employee
    and a.taskid = 'A'
    and b.taskid = 'B'
    HTH,
    Carl

  • Help with a select statement from a SQL Server within a DTS !!

    Hello Gurus!
    I help with the script bellow, when I run it within DTS (in SQL Sever 2000), I got the error Invalid number/or not a valid month.
    Please bellow with the WHERE CLASUE '08/01/2001' AND '03/09/2002'
    And in the other hand I change this forma to '01-AUG-01' AND
    '03-MAR-2002', the DTS start and run witha successful messages, but it does not returns row, which is wrong.
    Somebady please help!
    Thanks Gurus!
    GET Total ANIs with Trafic By Area Code
    select
         substr(b.ct_num, 0,3) as Area_Codes,
         COUNT(DISTINCT B.CT_NUM) AS ANIS
    from
         wasabi.v_trans A,
         wasabi.V_Sur_Universal B,
         wasabi.V_Sub C,
         wasabi.V_Trans_Typ D
    where
         D.Trans_typ = A.Trans_Typ AND
         A.Sur_ID = B.Sur_ID AND
         C.Sub_ID = A.Sub_ID AND
         a.trans_stat != 'X' AND     
         a.Trans_DTTM >= '08/01/2001'AND
         a.Trans_DTTM < '03/09/2002 AND
         B.AMA3 = 'PHONE1'
         AND C.SUB_ID not in (100117)
    GROUP BY
         substr(b.ct_num, 0,3)
    ORDER BY
         Area_Codes

    I think that you need a "to_date" function eg
    change '08/01/2001' to to_date('08/01/2001','dd/mm/yyyy')

  • Need Help With A Select Staement

    This is my data set.
    OPEN_DATE CLOSE_DATE
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 03-JAN-08
    04-JAN-08 04-JAN-08
    05-JAN-08
    07-JAN-08
    07-JAN-08 07-JAN-08
    07-JAN-08 07-JAN-08
    08-JAN-08 08-JAN-08
    08-JAN-08
    02-JAN-08
    02-JAN-08
    08-JAN-08
    09-JAN-08
    I'm need totals for those that are opened and closed per day. Here is what I'm trying to achieve...
    Status Value DATE
    Open 6 02-JAN-08
    Closed 3 02-JAN-08
    Open 0 03-JAN-08
    Closed 1 03-JAN-08
    Open 1 04-JAN-08
    Closed 1 04-JAN-08
    Open 0 05-JAN-08
    Closed 1 05-JAN-08
    Open 3 07-JAN-08
    Closed 2 07-JAN-08
    Open 3 08-JAN-08
    Closed 1 08-JAN-08
    Open 1 09-JAN-08
    Close 0 09-JAN-08
    This select statement gets me close but the problem is how to get the ones that should have a Value of 0
    select 'Open' "Status", count(*) "Value", to_char(open_date, 'DD-MON-YY') "DATE"
    from usar_log2
    where open_date IS NOT NULL and
    to_char(open_date, 'MON-YY') = to_char(sysdate, 'MON-YY')
    and (USAR_status like 'CLOSED' or usar_status like 'OPENED' or USAR_Status like 'WORKING')
    group by to_char(open_date, 'DD-MON-YY')
    UNION
    select 'Closed' "status", count(*) "Close", to_char(close_date, 'DD-MON-YY')
    from usar_log2
    where close_date is not null and
    to_char(close_date, 'MON-YY') = to_char(sysdate, 'MON-YY')
    and (USAR_status like 'CLOSED' or usar_status like 'OPENED' or USAR_Status like 'WORKING')
    group by to_char(close_date, 'DD-MON-YY')
    order by 3, 1 desc;
    The above select statement's results...
    Status Value DATE
    Open 6 02-JAN-08
    Closed 3 02-JAN-08
    Closed 1 03-JAN-08
    Open 1 04-JAN-08
    Closed 1 04-JAN-08
    Closed 1 05-JAN-08
    Open 3 07-JAN-08
    Closed 2 07-JAN-08
    Open 3 08-JAN-08
    Closed 1 08-JAN-08
    Open 1 09-JAN-08
    But I need this instead...
    Status Value DATE
    Open 6 02-JAN-08
    Closed 3 02-JAN-08
    <----- Open 0 03-JAN-08
    Closed 1 03-JAN-08
    Open 1 04-JAN-08
    Closed 1 04-JAN-08
    <----- Open 0 05-JAN-08
    Closed 1 05-JAN-08
    Open 3 07-JAN-08
    Closed 2 07-JAN-08
    Open 3 08-JAN-08
    Closed 1 08-JAN-08
    Open 1 09-JAN-08
    <----- Close 0 09-JAN-08
    Any help would be more appreciative.

    Thank you...You all are great. While I'm still
    looking at the various ways you all provided, from
    what I have looked at so far, they don't address
    05-JAN-08 which has a null open date. There are
    three possiblities, maybe four. Does 05-JAN-08 have a null open date in the data you supplied?
    You showed us:
    OPEN_DATE CLOSE_DATE
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 03-JAN-08
    04-JAN-08 04-JAN-08
    05-JAN-08
    07-JAN-08
    07-JAN-08 07-JAN-08
    07-JAN-08 07-JAN-08
    08-JAN-08 08-JAN-08
    08-JAN-08
    02-JAN-08
    02-JAN-08
    08-JAN-08
    09-JAN-08
    which looks like they all have open dates.
    Perhaps, if there was null open dates you should have used [code][/code] or [pre][/pre] tags around your data so it looked something like
    OPEN_DATE CLOSE_DATE
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 02-JAN-08
    02-JAN-08 03-JAN-08
    04-JAN-08 04-JAN-08
              05-JAN-08
    07-JAN-08
    07-JAN-08 07-JAN-08
    07-JAN-08 07-JAN-08
    08-JAN-08 08-JAN-08
    08-JAN-08
    02-JAN-08
    02-JAN-08
    08-JAN-08
    09-JAN-08And then it would have required the ANSI outer join in my query to allow for outer joining on more than one column...
    SQL> ed
    Wrote file afiedt.buf
      1  WITH t as (SELECT to_date('02-JAN-2008','DD-MON-YYYY') as open_date, to_date('02-JAN-2008','DD-MON-YYYY') as closed_date from dual union all
      2             SELECT to_date('02-JAN-2008','DD-MON-YYYY'), to_date('02-JAN-2008','DD-MON-YYYY') from dual union all
      3             SELECT to_date('02-JAN-2008','DD-MON-YYYY'), to_date('02-JAN-2008','DD-MON-YYYY') from dual union all
      4             SELECT to_date('02-JAN-2008','DD-MON-YYYY'), to_date('03-JAN-2008','DD-MON-YYYY') from dual union all
      5             SELECT to_date('04-JAN-2008','DD-MON-YYYY'), to_date('04-JAN-2008','DD-MON-YYYY') from dual union all
      6             SELECT NULL, to_date('05-JAN-2008','DD-MON-YYYY') from dual union all
      7             SELECT to_date('07-JAN-2008','DD-MON-YYYY'), NULL from dual union all
      8             SELECT to_date('07-JAN-2008','DD-MON-YYYY'), to_date('07-JAN-2008','DD-MON-YYYY') from dual union all
      9             SELECT to_date('07-JAN-2008','DD-MON-YYYY'), to_date('07-JAN-2008','DD-MON-YYYY') from dual union all
    10             SELECT to_date('08-JAN-2008','DD-MON-YYYY'), to_date('08-JAN-2008','DD-MON-YYYY') from dual union all
    11             SELECT to_date('08-JAN-2008','DD-MON-YYYY'), NULL from dual union all
    12             SELECT to_date('02-JAN-2008','DD-MON-YYYY'), NULL from dual union all
    13             SELECT to_date('02-JAN-2008','DD-MON-YYYY'), NULL from dual union all
    14             SELECT to_date('08-JAN-2008','DD-MON-YYYY'), NULL from dual union all
    15             SELECT to_date('09-JAN-2008','DD-MON-YYYY'), NULL from dual)
    16      ,all_dates as (select minod+rownum-1 as dt
    17                     from   dual, (select min(open_date) minod, max(open_date) maxod from t)
    18                     connect by rownum <= maxod-minod+1)
    19      ,stat as (select 'open' as status from dual union all select 'closed' from dual)
    20  -- END OF DATA
    21  select all_dates.dt, stat.status, sum(decode(decode(stat.status, 'open', t.open_date, t.closed_date), all_dates.dt, 1, 0)) as cnt
    22  from   stat JOIN all_dates ON (1=1)
    23         LEFT OUTER JOIN t ON (NVL(t.open_date, NVL(t.closed_date, all_dates.dt)) = all_dates.dt)
    24  group by all_dates.dt, stat.status
    25* order by 1,2 desc
    SQL> /
    DT        STATUS        CNT
    02-JAN-08 open            6
    02-JAN-08 closed          3
    03-JAN-08 open            0
    03-JAN-08 closed          0
    04-JAN-08 open            1
    04-JAN-08 closed          1
    05-JAN-08 open            0
    05-JAN-08 closed          1
    06-JAN-08 open            0
    06-JAN-08 closed          0
    07-JAN-08 open            3
    07-JAN-08 closed          2
    08-JAN-08 open            3
    08-JAN-08 closed          1
    09-JAN-08 open            1
    09-JAN-08 closed          0
    16 rows selected.
    SQL>Make your requirements clear in the future.

  • Help with doing SELECT sub query within the SET of an UPDATE statement

    After doing some research, it appears as if it's possible to use a SELECT subquery in the SET of an UPDATE statement.  i did find some examples and here is my code, however when I click the "check" button it's saying the field (my entire select subquery) is unknown and neither in one of the specified tables or defined by a "DATA".  Do I have a syntax issue or is there another reason why it's not taking this as a valid statement?  Thanks for the help!
    LOOP AT IT_DATA
    UPDATE /BIC/AZDP_O0140
       SET /BIC/ZCOUNTER = (SELECT COUNT( DISTINCT MATERIAL )
                            FROM /BIC/AZDP_O0140
                            WHERE MATERIAL EQ IT_DATA-MATERIAL
                            GROUP BY MATERIAL).
    ENDLOOP.

    my Update does indeed have a WHERE clause but because of the issue i'm having, all my criteria in my WHERE is black text in the ABAP editor.  The editor doesn't even recognize the keywords "WHERE" or "EQ".  Below is my entire statement which contains all WHERE criteria in both the Update and the Subquery, i've just removed it for testing to help simplify the query and eliminate as many other factors as posisble that may be causing problems:
    LOOP AT IT_DATA.
       UPDATE /BIC/AZDP_O0140
       SET /BIC/ZCOUNTER = (SELECT COUNT( DISTINCT MATERIAL ) FROM /BIC/AZDP_O0140
       WHERE WHSE_NUM EQ IT_DATA-WAREHOUSE
        AND  PLANT EQ IT_DATA-PLANT
        AND  /BIC/ZTRAN_NO EQ IT_DATA-TRANS_NUM
        AND  DELIV_NUMB EQ IT_DATA-DELIVERY
        AND  MATERIAL EQ IT_DATA-MATERIAL
        GROUP BY MATERIAL)
       WHERE WHSE_NUM EQ IT_DATA-WAREHOUSE
        AND  PLANT EQ IT_DATA-PLANT
        AND  /BIC/ZTRAN_NO EQ IT_DATA-TRANS_NUM
        AND  DELIV_NUMB EQ IT_DATA-DELIVERY
        AND  MATERIAL EQ IT_DATA-MATERIAL.
    ENDLOOP.
    i should also mention the sources i found were not within the SAP Library but instead on other third-party ABAP websites.  so because i was having issues i wanted to post here to see if anyone else has come up with a working solution.  but if this cannot be done i can likely come up with a solution for my needs using multiple internal tables, this would just have been much easier since i can get a query like this to do what i want in SQL Server.  Thought i could utilize this in ABAP as well.

  • Help with ComboBox Selection Update

    Hello,
    I am trying to make this application display all its labels in a different language depending on which locale the user picks from the ComboBox. The variables are being read from the ResourceBundles correctly (see command-line debugging statements) but I cannot get the pane to 'refresh' when the item is selected. I've tried everything I can think of! Please help! :)
    (This assignment was to internationalize a program we wrote for a previous assignment, so this program wasn't originally written to do this. I am trying to add this functionality to my existing project, so it's not ideal).
    Thank you for any advice, help or hints you can give!
    Program(PrjGUI)
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import javax.swing.*;
    import java.text.DateFormat;
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import java.util.Locale;
    import java.util.ResourceBundle;
    import java.util.TimeZone;
    public class PrjGUI extends JFrame
       //**** Instance Variables for both classes
       private JRadioButton optGram, optOz;
       private JTextField txtWeightEnter, txtResult, txtDateTime;
       private JButton cmdConvert;
       private JComboBox comboSelectLocale;
            //arrays--one for combo box list, and the other for values to use when a particular list item is selected
       private String[] localeList = {"English, USA", "Fran\u00E7ais, France", "Espag\u00F1ol, M\u00E9xico"};
       private Locale[] localeCode = {(new Locale("en", "US")), (new Locale("fr", "FR")), (new Locale("es", "MX"))};
       private JLabel lblChoose, lblWeightEnter;
       protected String titleTxt, enterTxt, btnTxt, gramTxt, ozTxt, resultDisplayTxt, localeTimeZone, dateFormat;
       protected ResourceBundle res;
       protected Locale currentLocale;
       //declare Handler Object
       private CmdConvertWeight convertWeight;
       //**************main method******************
       public static void main(String[] args)
          PrjGUI convertWeight1 = new PrjGUI();
       }//end of main******************************
       //constructor
       public PrjGUI()
          //create panel for components
          Container pane = getContentPane();
          //set the layout
          pane.setLayout(new GridLayout(0, 1, 5, 5));
          //set the color
          pane.setBackground(Color.GREEN);
          //make a font to use in components
          Font font1 = new Font("SansSerif", Font.BOLD, 16);
          /**New calendar object to display the date and time*/
          GregorianCalendar calendar = new GregorianCalendar();
          DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.US);
          /**currentLocale = localeCode[comboSelectLocale.getSelectedIndex()];
          DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, currentLocale); //uses key for ResourceBundle*/
          TimeZone timeZone = TimeZone.getTimeZone("CST");
          //TimeZone timeZone = TimeZone.getTimeZone(localeTimeZone); //uses key for resourceBundle
          formatter.setTimeZone(timeZone);
          //***create UI objects***
          /**NEW OBJECTS FOR prjInternational:
           * a drop-down combobox, a label, and a txt field
          txtDateTime = new JTextField(formatter.format(calendar.getTime()));
          //txtDateTime = formatter.format(calendar.getTime());
          lblChoose = new JLabel("Please choose your language.");
          lblChoose.setFont(font1);
          lblChoose.setBackground(new Color(0, 212, 255)); //aqua blue
          comboSelectLocale = new JComboBox(localeList);
          comboSelectLocale.setFont(font1);
          comboSelectLocale.setBackground(new Color(0, 212, 255)); //aqua blue
          //comboSelectLocale.setSelectedIndex(0);
          //add a listener to the combo box to get the selected item
          /**default values for variables so I can debug--at the moment
           * I can't get the resouceBundle to work--it can't locate the
           * file.  So I will hard code these in for now.
          /*titleTxt="Food Weight Converter";
          enterTxt="Please enter the Weight you wish to convert.";
          btnTxt="Convert this weight!";
          gramTxt="grams";
          ozTxt="oz";
          resultDisplayTxt="Result will display here.";*/
          comboSelectLocale.addItemListener(new ItemListener()
               public void itemStateChanged(ItemEvent e)
                    res = setCurrentLocale(comboSelectLocale.getSelectedIndex());
                    System.out.println(res.getString("enterTxt"));
                    updateItems(res);
                  //set variables from Resource Bundle
                  /* titleTxt = res.getString("titleTxt");
                   System.out.println(res.getString("enterTxt")); //debug
                   enterTxt = res.getString("enterTxt");
                   btnTxt = res.getString("enterTxt");
                   gramTxt = res.getString("gramTxt");
                   ozTxt = res.getString("ozTxt");
                   resultDisplayTxt = res.getString("resultDisplayTxt");*/
          //2 radio buttons
          //optGram = new JRadioButton("grams", true);
          optGram = new JRadioButton(gramTxt, true);
          //optOz = new JRadioButton("oz.");
          optOz = new JRadioButton(ozTxt);
          optGram.setBackground(Color.GREEN);
          optGram.setFont(font1);
          optOz.setBackground(Color.GREEN);
          optOz.setFont(font1);
          //button group so only one can be chosen
          ButtonGroup weightUnit = new ButtonGroup();
          weightUnit.add(optGram);
          weightUnit.add(optOz);
          //label and text field for weight
          //JLabel lblWeightEnter = new JLabel("Please enter the weight you wish to convert:");
          JLabel lblWeightEnter = new JLabel(enterTxt);
          lblWeightEnter.setFont(font1);
          txtWeightEnter = new JTextField("20.05", 6);
          txtWeightEnter.setBackground(new Color(205, 255, 0)); //lime green
          txtWeightEnter.setFont(font1);
          //button to make conversion
          //cmdConvert = new JButton("Convert this weight!");
          cmdConvert = new JButton(btnTxt);
          cmdConvert.setFont(font1);
          //textfield to display result
          //txtResult = new JTextField("Result will display here");
          txtResult = new JTextField(resultDisplayTxt);
          txtResult.setBackground(new Color(205, 255, 0)); //lime green
          txtResult.setFont(font1);
          //register the handler
          convertWeight = new CmdConvertWeight();
          cmdConvert.addActionListener(convertWeight);
          //add content to pane
          pane.add(txtDateTime);
          pane.add(lblChoose);
          pane.add(comboSelectLocale);
          pane.add(lblWeightEnter);
          pane.add(txtWeightEnter);
          pane.add(optGram);
          pane.add(optOz);
          pane.add(cmdConvert);
          pane.add(txtResult);
          //create window for object
          setTitle(titleTxt);
          setSize(400, 300);
          setVisible(true);
          setLocationRelativeTo(null);
          setDefaultCloseOperation(EXIT_ON_CLOSE);
       }//end of constructor
       /**  ACTION LISTENER CLASS TO RESPOND TO USER'S INPUT (EVENTS) **/
       private class CmdConvertWeight implements ActionListener
          public void actionPerformed(ActionEvent e)
             //System.out.println("we made it to the Action Listener"); //debug
             //get info from fields
             double weight = Double.parseDouble(txtWeightEnter.getText());
             double weightConvert = 0;
             String weightConvertString;
             if (optGram.isSelected())//if user's weight is in grams, converting to oz
             weightConvert = weight/28.35;
             weightConvertString = Double.toString(weightConvert);
             txtResult.setText(txtWeightEnter.getText() + " grams is equal to " + weightConvertString + " oz.");
             }//end if gram select
             else if (optOz.isSelected())//if user's weight is in oz, converting to grams
             weightConvert = weight*28.35;
             weightConvertString = Double.toString(weightConvert);
             txtResult.setText(txtWeightEnter.getText() + " oz. is equal to " + weightConvertString + " grams.");
             }//end if oz select
         }//end actionPerformed
      }//end CmdConvertWeight
       /**setCurrentLocale method from combo box listener*/
       public ResourceBundle setCurrentLocale(int index)
            Locale currentLocale = localeCode[index];
            System.out.println(currentLocale); //debug
            System.out.println("MyResource_" + currentLocale); //debug
            ResourceBundle res = ResourceBundle.getBundle("MyResource_" + currentLocale);
            return res;
       }//end setCurrentLocale
       public void updateItems(ResourceBundle res)
            //convertWeight1.setTitle(res.getString(titleTxt));
            System.out.println(res.getString(btnTxt));//debug
            lblWeightEnter.setText(res.getString(enterTxt));
            optGram.setText(res.getString(gramTxt));
            optOz.setText(res.getString(ozTxt));
            cmdConvert.setText(res.getString(btnTxt));
            txtResult.setText(res.getString(resultDisplayTxt));
       }//end updateItems
    }//end of class PrjGUIResourceBundles(each in a different file)
    public class MyResource_fr_FR extends java.util.ListResourceBundle
         static final Object[][] contents =
              {"titleTxt", "Convertisseur de poids de nourriture"},
              {"enterTxt", "Veuillez \u00E9crire le poids que vous souhaitez convertir."},
              {"btnTxt", "Convertissez ce poids!"},
              {"gramTxt", "grammes"},
              {"ozTxt", "onces"},
              {"resultDisplayTxt", "Le r\u00E9sultat montrera ici."},
              {"localeTimeZone", "CET"},
              {"dateFormat", "Locale.FR"}
         public Object[][] getContents()
              return contents;
    public class MyResource_es_MX extends java.util.ListResourceBundle
         static final Object[][] contents =
              {"titleTxt", "Convertidor del peso del alimento"},
              {"enterTxt", "Incorpore por favor el peso que usted desea convertir."},
              {"btnTxt", "\u00F1convierta este peso!"},
              {"gramTxt", "gramos"},
              {"ozTxt", "onzas"},
              {"resultDisplayTxt", "El resultado exhibir\u00E1 aqu\u00ED."},
              {"localeTimeZone", "CST"},
              {"dateFormat", "Locale.MX"}     
         public Object[][] getContents()
              return contents;
    public class MyResource_en_US extends java.util.ListResourceBundle
         static final Object[][] contents =
              {"titleTxt", "Food Weight Converter"},
              {"enterTxt", "Please enter the weight you wish to convert."},
              {"btnTxt", "Convert this weight!"},
              {"gramTxt", "grams"},
              {"ozTxt", "oz"},
              {"resultDisplayTxt", "Result will display here."},
              {"localeTimeZone", "CST"},
              {"dateFormat", "Locale.US"}
         public Object[][] getContents()
              return contents;
    }Edited by: JessePhoenix on Nov 2, 2008 8:30 PM

    catman2u wrote:
    does anyone from Lenovo actually read this forum?
    From the Communiy Rules in the Welcome section....
     Objectives of Lenovo Discussion Forums
    These communities have been created to provide a high quality atmosphere in which users of Lenovo products and services may share experiences and expertise. While members from Lenovo may participate at intervals to engage in the discussions and offer advice and suggestions, this forum is not designed as a dedicated and staffed support channel. This is an informal and public forum, and Lenovo does not guarantee the accuracy of information and advice posted here -- see important Warranty information below.
    No amount of ranting is going to get you anything more than you will achieve with a clear exposition of your issue... so you might want to try doing that instead of ranting and assuming that everyone already knows what you know etc etc.
    Cheers,
    Bill
    I don't work for Lenovo

  • Help with Row Selection

    Hi all,
    this is my first post here, I hope you guys can help me out.
    I'm creating a inbox where users will be able to receive messages. I need to set it so that when they click on one of the messages in the inbox, the body of the message gets displayed below the inbox.
    I'm having two problems currently, the first one is that I don't know how to make the text area display the body of the message when the row is clicked (right now i have it showing a random string of letters, I'm fairly new to the programming world). The second thing is, even that random string of letters isnt displayed immediately, i have to click on one of the buttons (currently they dont do anything) for the page to refresh and display the message.
    Can you guys help me out? Here is my code. Im using jDev11.1.1.5 R1.
    Table Code:
    <af:table value="#{TableBean.messageAll}" var="message"
    inlineStyle="color:Navy; border-style:outset; border-color:Background; border-width:thick; font-size:small; text-align:center; vertical-align:middle; height:135.0px;"
    width="610" rows="5" rowBandingInterval="0"
    id="t1" rowSelection="single"
    selectionListener="#{TableBean.messageSelected}"
    immediate="true" summary="Message Inbox"
    disableColumnReordering="true"
    columnSelection="none"
    columnResizing="disabled">
    <af:column sortable="false" align="center"
    id="chechboxCol" width="25"
    minimumWidth="25">
    <f:facet name="header">
    <h:selectBooleanCheckbox id="selectAll"
    onclick="selectAll();"></h:selectBooleanCheckbox>
    </f:facet>
    <h:selectBooleanCheckbox id="selectMessage"
    immediate="true"></h:selectBooleanCheckbox>
    </af:column>
    <af:column id="urgentCol" width="25" align="center"
    minimumWidth="25">
    <f:facet name="header">
    <h:outputText id="urgentHeader">
    <img src="urgent.gif" height="14"
    width="14" alt="Urgent Icon"/>
    </h:outputText>
    </f:facet>
    </af:column>
    <af:column sortable="true" headerText="From"
    align="start" id="fromCol" width="175"
    minimumWidth="175">
    <af:outputText value="#{message.from}"
    id="ot1"/>
    </af:column>
    <af:column sortable="true" headerText="Subject"
    align="start" id="subjectCol" width="175"
    minimumWidth="175">
    <af:outputText value="#{message.subject}"
    id="ot2"/>
    </af:column>
    <af:column sortable="true" headerText="Type"
    align="start" id="c5" width="100"
    minimumWidth="100">
    <af:outputText value="#{message.type}"
    id="ot3"/>
    </af:column>
    <af:column sortable="true"
    headerText="Date Received" align="start"
    id="c6" width="80" minimumWidth="80">
    <af:outputText value="#{message.date}"
    id="ot4"/>
    </af:column>
    <af:column sortable="true" headerText="Body"
    rendered="false" align="start" id="c7"
    width="100" minimumWidth="100">
    <af:outputText value="#{message.body}"
    id="ot5"/>
    </af:column>
    </af:table>
    </td>
    </tr>
    <tr>
    <td style="background-color:White;" width="600">
    <p>
    <af:commandButton text="Print" id="printButton"
    inlineStyle="font-size:x-small;"/>
    </p>
    <af:inputText binding="#{TableBean.textArea}" rows="10"
    readOnly="true"
    contentStyle="width:620px;"
    inlineStyle="color:Black; outline-color:Background; outline-style:outset;"
    id="it1"></af:inputText>
    Backing Bean Code:
    package Backing;
    import javax.faces.event.ActionEvent;
    import oracle.adf.view.rich.component.rich.input.RichInputText;
    import org.apache.myfaces.trinidad.event.SelectionEvent;
    public class TableBean {
    private RichInputText textArea;
    private message[] messageAll =
    new message[] { new message("Sender 1", "Author 1", "Message 1",
    "Alert", "6/21/2011",
    "This is the body 1."),
    new message("Sender 2", "Author 2", "Message 2",
    "Notification", "6/22/2011",
    "This is the body 2."),
    new message("Sender 3", "Author 3",
    "Message 3", "Broadcast", "6/23/2011",
    "This is the body 3."),
    new message("Sender 4", "Author 4",
    "Message 4", "Alert", "6/24/2011",
    "This is the body 4."),
    new message("Sender 5", "Author 5", "Message 5",
    "Notification", "6/25/2011",
    "This is the body 5."), };
    public message[] getmessageAll() {
    return messageAll;
    public void messageSelected(SelectionEvent selectionEvent) {
    textArea.setValue("gnejhkafnawjkfa");
    public void setTextArea(RichInputText textArea) {
    this.textArea = textArea;
    public RichInputText getTextArea() {
    return textArea;
    public class message {
    boolean selected;
    String from;
    String to;
    String subject;
    String type;
    String date;
    String body;
    public message(String from, String to, String subject, String type,
    String date, String body) {
    this.from = from;
    this.to = to;
    this.subject = subject;
    this.type = type;
    this.date = date;
    this.body = body;
    public String getFrom() {
    return from;
    public String getTo() {
    return to;
    public String getSubject() {
    return subject;
    public String getType() {
    return type;
    public String getDate() {
    return date;
    public String getBody() {
    return body;
    Edited by: xeneize368 on Jul 12, 2011 8:26 AM
    Edited by: xeneize368 on Jul 12, 2011 11:46 AM

    I'm not quite sure what you mean. As I said, I'm a beginner, could you please be clearer? maybe show me how to do it?
    I figured out the auto refresh using the partialTriggers but I still dont know how to get it to populate with the message body instead.
    Edited by: xeneize368 on Jul 12, 2011 10:31 AM

Maybe you are looking for

  • Select a set of integer from another set

    I have a set of integers from 1 to 7. I want to select the integers which not exist in this set. For example: the set contains (1,3,6,7) The result should be (2.5) how to do it in SQL

  • BENQ FP241W on Retina Macbook Pro

    I have a brand new Retina MBP and a BENQ FP241W and they don't work together using the HDMI port. When plugged in the Mac screen flashes and the BENQ is detcted. Then the BENQ screen either goes green or red and doesn't show a mirrored screen. The di

  • ITunes freezes MY ENTIRE MAC

    This just started happening a while ago and it didn't bother me much until I had just lost a bunch of data due to this problem Basically, everytime I play a song in iTunes, it might seem to go well after a couple songs, but then at random points that

  • WebDynpros Navigation for ABAP development

    I need to call a Webdynpro from another Webdynpro and remain in the same window. I am developing everything only with ABAP, because there is no Netweaver software available at my working place. There are some threads about this topic but any of them

  • N800 os2008 combined: settings lost over reboot, U...

    Loaded the combined os2008 onto my n800. Wifi worked (unlike the n800-specific version), lots of other things worked. But there are differences. - word choice and word prediction during typing used to be defaulted on; now off. Turn them on, they work