UPSERT Within the Same Table

Hi All,
I have the following two tables: ALLOWANCE and RANGES. ALLOWANCE has the key column AllowanceID and corresponding to each AllowanceID, there will be a number of RANGE entries. Range has a primary key called RangeID and a reference to AllowanceID. Besides these, it has the following columns.
RANGESTART
RANGEEND
POUNDS
SUM
Now, I want to write a query to match the ranges of two AllowanceIDs. ie, Given SorceAllowanceID and TargetAllowanceID, I want to match the number of ranges as well as the range values of the souce to target. So I have the following query (I am using only one column here) followed by an INSERT statement(not shown here),
UPDATE
SELECT
src.pounds AS src_pounds ,
tgt.pounds AS tgt_pounds
FROM
SELECT rank() OVER (PARTITION BY PR.ALLOWANCEID ORDER BY PR.RANGESTART) RN
,PR.*
FROM RANGES PR
WHERE PR.ALLOWANCEID=sourceallowanceid
ORDER BY PR.RANGESTART) src ,
SELECT rank() OVER (PARTITION BY PR.ALLOWANCEID ORDER BY PR.RANGESTART) PN ,PR.*
FROM ranges PR
WHERE PR.aLLOWANCEID=targetallowanceid
ORDER BY PR.RANGESTART) TGT
WHERE src.Rn=tgt.PN
SET tgt_pounds = src_pounds;
But this has thrown ORA-01779. Then I tried with the MERGE statement
MERGE INTO
SELECT rank() OVER (PARTITION BY PR.ALLOWANCEID ORDER BY PR.RANGESTART) PN
,PR.*
FROM RANGES PR
WHERE PR.ALLOWANCEID=targetallowanceid
ORDER BY PR.RANGESTART) tgt
USING (SELECT rank() OVER (PARTITION BY PR.ALLOWANCEID ORDER BY PR.RANGESTART) RN
,PR.*
FROM RANGES PR
WHERE PR.ALLOWANCEID=sourceallowanceid
ORDER BY PR.RANGESTART) src
ON ( src.RN = tgt.PN )
WHEN MATCHED THEN
UPDATE SET tgt.pounds = src.pounds
WHEN NOT MATCHED THEN
--Insert
which has thrown ORA-00903.
Please guide me how to write a query for this.
Thanking you all,
Pradeep

This it the forum for the SQL Developer tool. Your question will get better response int the SQL and PL/SQL forum.
Having said that, you need to be updating a table, not an inline view.
i.e.
update x
set ...
not
update (select * from x)
set ...

Similar Messages

  • How can I start a new paragraph within the same table cell?

    In Numbers, when adding text within a table frame, how can I start a new line within the same frame (rather than advancing to the next cell)?  I'd like to enter a mini-list of several items of various lengths of data.

    While Wayne's answer solves your problem, another possibility is to uncheck the box at the bottom of the Table inspector for "Return key moves to next cell." If that is unchecked, the return key types a paragraph return within the cell (the same as Option Return with the box checked).
    With that box unchecked, Shift Return types a soft return (new line without a paragraph break).

  • And condition within the same table

    Hello all,
    Was wondering if anyone knows what's the best and most efficient way to query for something similar to the example below.
    Table1
    ID CID VALUE
    1 1 a
    2 2 b
    3 3 c
    4 1 c
    Find me all customer id where value is a and c
    This should only bring back cid = 1.
    Thanks in advance

    select cid from table1 t1 where value='a'
    and exists (select 1 from table1 t2 where t2.cid = t1.cid and t2.value='b');note: untested

  • Simple button action that goes to a page within the same doc

    I can't figure this out. I have a button I want to use that takes a person back to the first, or second page of the same doc. It's a catalog section with a table of contents. I need to make links for the pdf that takes people to certain pages within the same document.
    In the Buttons panel, I see how to make the button, but when I assign an action, the only choice that makes sense is "Go To Destination", but I don't get or see any way to choose "page 2" of the document, or another selection method.
    I did this before a few years ago on hundreds of pages, and when I open those old documents up to copy/paste the same buttons, they don't even appear to have actions on them anymore, as if it never happened.
    So, what's the secret? Certainly there's a way to link to another page in the same ID file, no?

    Finally figured it out. I do NOT use the button panel at all. No buttons needed. Just select the grouped object that I want for my button, and hit the "add hyperlink" button in the Hyperlink panel. Then choose "Page" from the menu that opens up and be on my way. What was throwing me for a bad loop, was that I had copied and pasted the button graphic form another document. Well, since the link made previously was broken now, I had the red flag in the Hyperlinks panel...and thus, the "new hyperlink" button was greyed out, sending me in circles. The minute I deleted the old hyperlink it carried over from the old document, the new hyperlink button worked again and all was well.
    Thanks.

  • How to read the hierarchy data from the same table using loop in AMDP method

    Hi All,
    We have a requirement to get the top partner from BUT050 table.
    Here the Top parent is nothing but the top most in the hierarchy of the partners from BUT050.
    Example:
    For partner 1234 (BUT050-PARTNER1) there is partner 3523(BUT050-PARTNER2) one level above
    For partner 3523(BUT050-PARTNER1)  there is partner 4544 (BUT050-PARTNER2) last level .
    so in this case for the partner 1234 the Top parent is 4544 .
    I have created AMDP Procedure method to get the top-parnet and below given is the logic implemented in AMDP method.
    Here i have implemented a recursive logic with the WHILE loop to get the top most hierarchy partner from the same table BUT050
    IV_Parent is the input partner and ev_top_parent is the output value.
    AMDP Procedure Method:
        DECLARE lv_date VARCHAR(8) := TO_VARCHAR (current_date, 'YYYYMMDD');
        DECLARE found INT := 1;
              iv_partner1 =  SELECT partner1 FROM but050
                              WHERE partner2 = iv_partner
                              AND reltyp = :iv_hierarchy
                              AND date_to >=  :lv_date
                              AND date_from <= :lv_date;
         WHILE found <> 0  do
           select partner1 into ev_top_parent from :iv_partner1;
                           iv_partner1 =  SELECT partner1 FROM but050
                           WHERE partner2 in ( select partner1 from :iv_partner1 where partner1 is not null)
                           AND reltyp = 'ZBP004'
                           AND date_to >= :lv_date
                           AND date_from <= :lv_date;
           select COUNT ( partner1 ) INTO found FROM :IV_PARTNER1;
        END WHILE;
    This method is working fine, but here it is only taking one single partner and getting the top parent as output.
    Now i would like to convert this mehtod so as to accept n number of partners (not one single partner) as input and should process each partner to get the top parent.
    Could anyone guide me how can i handle the given AMDP method further so as to work some how it is within another loop from other AMDP method.
    Thanks.
    Regards,
    Laxman.P

    Hi
    Go to SE11 and enter the hierarchy table name.
    /BIC/H....(infoobject name)...and execute the table and select table entry and delete all....
    Thanks
    TG

  • Illegal cross join within the same dimension caused by incorrect subject ar

    hi!
    Imagine the following BMM:
    There is one Logical Dimension Table "Service Account" with the following LTS:
    - LTS "D_SERVICE"
    - LTS "D_SERVICE_CLASS"
    - LTS "D_SERVICE_STATUS"
    This Logical Tabe "Service Account" joins (One-to-many) with several Fact Tables (other Logical Tables).
    In the Physical Layer the joins for the "Service Account" LTS are:
    - One-to-many between D_SERVICE_CLASS and D_SERVICE
    - One-to-many between D_SERVICE_STATUS and D_SERVICE
    The problem is that when I build a report in Answers using only the following columns of the Logical Table "Service Account":
    - Service Class Desc (which exists in the Logical Table "Service Account" and in the Physical Table D_SERVICE_CLASS)
    - Service Status Desc (which exists in the Logical Table "Service Account" and in the Physical Tabl D_SERVICE_STATUS)
    - MSISDN (which existis in the Logical Table "Service Account" and in the Phsyical Table D_SERVICE)
    the following error appears:
    Estado: HY000. Código: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 14065] Illegal cross join within the same dimension caused by incorrect subject area setup: [ (select * from prd.D_SERVICE where SOURCE_SYS in ('ARBOR','PPB') and DW_SERV_ST_ID in (100000003,100000009)) as T1836, D_SERVICE_CLASS T1916] with [ D_SERVICE_STATUS T1948] (HY000)
    SQL emitido: SELECT "SERVICE ACCOUNT"."TLC MSISDN9" saw_0, "SERVICE ACCOUNT"."IWS Service Class Desc" saw_1, "SERVICE ACCOUNT"."TLC Service Status Desc" saw_2 FROM "VFPT - Upgrade Siebel" WHERE "SERVICE ACCOUNT"."TLC MSISDN9" = '917330340' ORDER BY saw_0, saw_1, saw_2
    Help, please!
    Thanks.

    Physically, only D_SERVICE is joined to the facts. Then D_SERVICE_CLASS is joined to D_SERVICE (one-to-many) and D_SERVICE_STATUS is joined also to D_SERVICE (one-to-many).
    In the BMM, there is only one Logical Dimension Table for those 3 physical tables. This Logical Dimension Table is called "Service Account" and has 3 LTS: D_SERVICE, D_SERVICE_CLASS, D_SERVICE_STATUS. The Logical Dimension Table has several logical columns that are associated to those 3 LTS: SERVICE_KEY, SERVICE_CLASS_KEY, SERVICE_STATUS_KEY, SERVICE_MSISDN, SERVICE_CLASS_DESC, SERVICE_STATUS_DESC.
    The Logical Dimension Table "Service Account" is then joined to a fact table (one-to-many).
    I didn't understand the suggestion about the 3 LTS... Aren't we doing that already? Can you explain it better, please?
    thanks.

  • [nQSError: 14065] Illegal cross join within the same dimension

    Hey guys,
    I'm stumped. I have two dimension tables that are joined 1:N (there is NOT an M:N relationship between them) and I have them joined in the Physical Layer and the Business Model and Mapping Layer. The two tables are F4101 (the "1") and F4102 (the "N") in the 1:N relationship. F4102 then joins to a fact table, and F4101 joins to NOTHING else. So I don't believe I have a circular condition or a need for a bridge table. Both tables are published to the Presentation Layer for reporting.
    The error occurs in Answers when I want to do something as trivial as display the three primary key columns together from F4101: F4101.col1, F4101.col2, F4101.col3 (all three make up the PK). When I do that, the following error occurs:
    "nQSError: 14065] Illegal cross join within the same dimension caused by incorrect subject area setup: [ F4101 T28761] with [ F4102 T1805] "
    What I can't figure out is WHY the F4102 table is listed in this error. I didn't try to report on it at all. See the logical SQL below from my query:
    "SQL Issued: SELECT "Item Master (F4101)".IMITM saw_0, "Item Master (F4101)".IMLITM saw_1, "Item Master (F4101)".IMAITM saw_2 FROM "Sales Analysis" ORDER BY saw_0, saw_1, saw_2"
    As soon as I take out one of the three PK columns and add in another non-PK column from F4101, it works just fine. And reporting on each of the three PK columns individually works as well in Answers.
    Any ideas? I would greatly appreciate it.
    Thanks.

    Try this;
    1. In the logical layer, create one folder called F4101_F4102.
    2. Map both F4101 and F4102 as logical table sources in that folder.
    3. Join from the folder F4101_F4102 to the fact using a Logical (new complex join) join.
    Chris.

  • Retrieve data from other context node within the same context

    Hi Experts,
    I want to redefine method BUILD_TABLE for a table context node and I need to access data from another context node within the same context. I have looked through the methods of class CL_BSP_WD_CONTEXT_NODE_TV but could not find a mean of retrieving the other context nodes.
    Any ideas?
    Thanks a lot. Your help is appreciated.
    Cheers,
    Jens

    Hi Jens,
    Check this [wiki|http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=201066680] it should be helpful.
    Regards,
    Shobhit

  • Getting Error : Illegal cross join within the same dimension

    Hi All,
    At database there are 4 tables - XLE_Entity_profiles (A) , XLE_ETB_profiles (B) ,XLE_Registration (C),XLE_Reg_Function(D) .
    Attribute info is as below -
    A.Le_name
    B.LRU_name
    C. Registraton name
    D. Function_code
    I have to model a single dimension which contains the attributes from these tables and dimension should also support queries which contains attributes from this dimension only without selecting any fact.
    For Exp - query is as below -
    Le_name,Le-Registraton name,Le_Function_code,LRU_name,LRU_Registraton name,LRU_Function_code
    To support such query , i created aliases of table XLE_Registration,XLE_Reg_Function.
    Aliases names are - XLE_Registration_LE (E),XLE_Registration_LRU (F),XLE_Reg_Function_LE (G).,XLE_Reg_Function_LRU (H)
    Attributes from aliases are as below -
    XLE_Registration_LE- Le-Registraton name
    XLE_Registration_LRU -LRU_Registraton name
    XLE_Reg_Function_LE - Le_Function_code
    XLE_Reg_Function_LRU - LRU_Function_code
    i have renamed the attributes For LE and LRU.
    The Physical layer diagram is as below
    A < B
    E F
    G H
    [A:B (1:M) , A:E(1:M), E:G(1:M),B:F(1:M),F:H(1:M)]
    At logical layer , i have created a dimension DIM-LE with below logical table sources -
    A ,B,E,F,G,H
    Using the properties of LTS B , i mapped B to A.
    Using the properties of LTS E , i mapped E to A.
    Using the properties of LTS F , i mapped F to B.
    Using the properties of LTS G , i mapped G to E.
    Using the properties of LTS H , i mapped H to F.
    Now when i run the query , i am getting the error -
    Query - Le_name,Le-Registraton name,Le_Function_code,LRU_name,LRU_Registraton name,LRU_Function_code
    +++Administrator:2a0000:2a0004:----2008/11/07 19:39:03
    Query Status: Query Failed: [nQSError: 14065|http://forums.oracle.com/forums/] Illegal cross join within the same dimension caused by incorrect subject area setup: [
    XLE_REGISTRATIONS T1218 On XLE_REGISTRATIONS_LRU.REGISTRATION_ID = XLE_REG_FUNCTIONS_LRU.REGISTRATION_ID,
    XLE_REG_FUNCTIONS T5737,
    XLE_ETB_PROFILES T900 On XLE_ETB_PROFILES.ESTABLISHMENT_ID = XLE_REGISTRATIONS_LRU.SOURCE_ID,
    XLE_ENTITY_PROFILES T836 On XLE_ENTITY_PROFILES.LEGAL_ENTITY_ID = XLE_ETB_PROFILES.LEGAL_ENTITY_ID] with [
    XLE_REGISTRATIONS T1155 On XLE_REGISTRATIONS_LE.REGISTRATION_ID = XLE_REG_FUNCTIONS_LE.REGISTRATION_ID,
    XLE_REG_FUNCTIONS T5703,
    XLE_ENTITY_PROFILES T836 On XLE_ENTITY_PROFILES.LEGAL_ENTITY_ID = XLE_REGISTRATIONS_LE.SOURCE_ID]
    But when i run below query,which resembles the BI Answer query, against the database ,
    select distinct A.NAME as c1,
    B.REGISTERED_NAME as c2,
    E.Function_code as c5,
    C.NAME as c3,
    D.REGISTERED_NAME as c4,
    F.Function_code as c6
    from
    XLE_ENTITY_PROFILES A,
    XLE_REGISTRATIONS B,
    XLE_REG_FUNCTIONS E,
    XLE_ETB_PROFILES C,
    XLE_REGISTRATIONS D,
    XLE_REG_FUNCTIONS F
    where (A.LEGAL_ENTITY_ID = C.LEGAL_ENTITY_ID and
    A.LEGAL_ENTITY_ID = B.SOURCE_ID and
    C.ESTABLISHMENT_ID = D.SOURCE_ID and
    B.SOURCE_TABLE = 'XLE_ENTITY_PROFILES' and
    D.SOURCE_TABLE = 'XLE_ETB_PROFILES' and
    E.Registration_id = B.Registration_id and
    F.Registration_id = D.Registration_id)
    order by c1, c2,c5, c3, c4,c6
    i don't get any error.
    Please let me know , why am i getting this error and how can i resolve this issue?

    Hi All,
    Is there any update on this ?
    Thanks,Ashish

  • Illegal cross join within the same dimension caused by incorrect subject.

    Hello Gurus,
    I am getting this error for one calculated column in OBIEE 11G
    Illegal cross join within the same dimension caused by incorrect subject area setup. *[ WC_PC_POSITION_D AS Dim_WC_PC_POSITION_D] with [ W_GL_ACCOUNT_D AS Dim_W_GL_ACCOUNT_D On Dim_W_GL_ACCOUNT_D.ROW_WID = Fact_WC_PC_BUDGET_DTLS_F.GL_ACCOUNT_WID, WC_PC_BUDGET_DTLS_F AS Fact_WC_PC_BUDGET_DTLS_F] (HY000)*
    the same column is calculated in OBIEE 10G and it's giving fine result.
    the way it's calculated in BMM is we are using 2 different logical table's column for deriving new column.
    is anyone having any idea?
    Thanking You..

    More Specially,
    Physical Layer:
    Dim:View1,View2,View3,View4
    Fact:View5
    all Views are PK joined in Phsical layer.
    So I need all columns in 3 Views and few column in View4.
    In BMM :
    Dim:View1,View2,View3
    Fact:View 5
    are joined and created LTS in View3 for LTS View4 and dropped few coulmns and mapped the columns.
    In reports,
    If I pull the columns from View3 which is came from view4 then getting the error.
    I hope does it make sense.
    Please help on this.

  • Illegal cross join within the same dimension

    Hi,
    When certain fields are selected within the presentation table an "illegal cross join" error is returned by the BI Server. However if a FACT is added from one of the other presentation tables the "illegal cross join" error goes away. we need to query without fact column.
    We are getting following error
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 14065] Illegal cross join within the same dimension caused by incorrect subject area setup: [ CALL_CENTER.COUNSELOR_MANAGER T782130] with [ CALL_CENTER.COUNSELOR_HR T781594 On CALL_CENTER.COUNSELOR_HR.MASTER_STAFF_COUNSELOR_ID = CALL_CENTER.MASTER_STAFF_COUNSELOR.MASTER_STAFF_COUNSELOR_ID, CALL_CENTER.MASTER_STAFF_COUNSELOR T781739] (HY000)
    Can anybody help me solving this issue.
    Thanks,
    KS.

    Please give us an example of what you need.
    OBIEE perform a query in the dimension or through the fact table.
    You can't join two dimensions in the repository without going through a fact table.
    If you need to query without fact column, it's because you have design two dimensions where
    normally you can do one.
    You have then two solutions :
    * change the design of your logical model to make only one dimension.
    * use the OBIEE logical SQL in answer.
    http://gerardnico.com/wiki/dat/obiee/bi_server/design/obiee_logical_sql
    Success
    Nico

  • Illegal cross join within the same dimension caused by incorrect

    Hi,
    I created a logical table from 2 different Physical tables. Then I created a Dimension out of this logical table.
    At the BI Answer, while I tried drilling on the dimension, I get the following error:
    “Illegal cross join within the same dimension caused by incorrect subject area setup “
    Please let me know if there is any work around this issue.
    Thanks,

    I think that OBIEE try to do a cross join but don't allow it
    http://gerardnico.com/wiki/dw/join/cross_join
    It generate surely a join with two tables where you don't have any condition or relation in the physical layer.
    When you check the column from the subject area are you sure that you have a condition in the physical layer for the two tables ?
    When you say "I tried drilling on the dimension", does it means that you have a report and when you click on link which come from a dimension level, it doesn't work ?
    Regards
    Nico

  • I can't copy and paste formatted text within the same or between Word and Excel documents

    I run Microsoft Office Professional Plus 2010 (English) (Student Select)
    when I try to copy any formatted text or tables within the same or different Word documents I will always loose the formatting. This is also true if I try to copy formats or formatted tables within Excel or from Excel to Word, see example screenshot:
    When I have a look at my paste options via 'Alt', 'e', 's' or 'Paste special' it only lets me choose between "Unformatted Text" or "Unformatted Unicode Text", see screenshot:
    Here is what I tried already:
    - In the advance options menu all options are on "keep formatting"
    - I uninstalled and reinstalled the entire office suit but keep having the same problem!
    Any ideas?
    Thanks in advance,
    Boston

    I found the solution on another site, superuser.com, so I can't claim the solution as my own, but it worked for me. Kent Ng says: 
    I face the similar issue with Excel 2003. If you have installed Skype-Click-to-Call, just removed it to resolve this issue.

  • Question relating tips for 2 DFF segments within the same group

    Hi All,
    I have a requirement where in I need to display a tip message for two of the DFF flexfield Segments within the same group. Currently we are displaying a tip for one of the DFF flexfield segment by placing it at the end of the Segment List and creating a normal tip message just below it. The shortfall of the above approach is when I add new segments to the DFF, the tip for the former segment is out of place.
    Also, I currently have a requirement to create another tip for another Segment which is part of the same DFF. Could anyone of you please suggest how both the tips for the 2 DFF segments of the same group can be shown on the same page?
    Thanks,
    Sowmya.K
    Edited by: user770244 on Nov 5, 2009 12:54 AM

    Hi experts,
    I am trying to find some solution that way:
    - Maintain field catalog (FBRC008): setting field Segment as "secondary organisational unit" and setting field parter segment as "Secondary partner unit"
    - Setting up a the reconciliation display (FBRC003) with the flag "Use Primary and Secondary org units and partner units in hierarchy display"
    But when I launch the reconciliation display, the following dump arises :
    "ITAB_ILLEGAL_COMPONENT"
    In the current ABAP program "CL_FBRC_PRESENTATION==========CP" the internal
    table "<LT_TOTAL>" was to be
    processed with "SORT".
    At the same time, a component "SEGMENT " was dynamically specified as content
    of the field "ME->MD_SECONDARY_ORGUNIT_FIELD".
    Do you have any explanation for that dump?
    Thanks!

  • How to use multiple profiles within the same instance of Thunderbird

    About a month ago, I had Thunderbird configured with three profiles,
    and all three could be used within a single startup/instance of
    Thunderbird. That PC is now gone. I have re-configured the three
    profiles on a new PC, but am having trouble making all three
    useable within the same instance of Thunderbird. Can you help?
    Both PCs are/were Windows-7 64 bit.

    Thunderbird only opens on the default if one profile
    or
    if Profile Manager is instructed to ask at startup it will allow you to choose which Profile to open else it opens on the last Profile used..
    So it shows one Profile at a time in one instance of Thunderbird.
    However, one Profile can have many mail accounts.
    eg: I run 4 mail accounts in one Profile.

Maybe you are looking for

  • BSEG table in Report painter

    Hi All, I want to create a report using a report painter. For this while creating library, i want to use the table BSEG. But i am getting an error message "Table BSEG is not installed in report painter". Then i used transaction MC27 and created Z str

  • Where to locate and how to use the filter thershould to binarized image

    Good morning friends. I am using Labview with VDM and let me know where to locate and how to use the filter thershould. Also that parameters used to binarized image captured via webcam and display it in black and white. Thank you very much.

  • Activation failed: CBS Server Error...Please help

    Hello All, I get this error while activating a DC/activity: <i><b>Activation failed: CBS Server Error: The user does not have the authorization for the requested operation( internal code: USR_MISSING_PRIVILEGE)</b></i> I have setup the required User

  • ALV - How to default variant change.

    I have coded one report with ALV output. I have /DEFAULT variant in my ALV output  and the output contains 12 fields. When I execute the this report problem 1). How can i shift the 7th field to 12 th field and save as a new variant. Problem 2).If I r

  • Mail crashes multiple times a day

    I've been having A LOT of problems with Mail in the last few weeks. It crashes at least once a day, often multiple times a day. There are no particular causes for the crash that I notice. Sometimes, it crashes when i'm trying to read an e-mail, somet