How to combine and summarize infocube data in a query

I have data in 2 infocubes that I need to combine in a query.  In addition, data in 1 of these infocubes needs to be summarized in this query.
A simplified example:
infocube1 (lots of records in this infocube)
costcenter        budget
11111              20
22222              40
infocube 2 (not so many records in this infocube)
cost center       code        expense
11111              A             10
11111              B              5
In a query I need to produce something like the following:
cost center        expense        budget
11111                15                 20
How can I do this?
Thanks in advance!
Den

Thanks for the helpful reply, Jr Roberto.  I didn't know about multiproviders, so that's a big help.  Unfortunately it still doesn't solve my problem (probably because I didn't give you the WHOLE story!). 
Because of some data inconsistencies between the 2 infocubes (some key fields have different structure, etc.) I think I have to use routines in an update rule for a new infocube to extract data from infocube 1 (in the above example).  Of course, when I do that, I'm extracting the same value from infocube1 multiple times -- once for each record in infocube2.
In other words, I think I need  to compress/summarize the data in infocube2 by removing a key field (multiple records become 1), and apply my abap routine in the update rule to extract from infocube1.
Does this make sense, or am I going about it all wrong???
Thanks again!
Den

Similar Messages

  • How are attribute and text master data tables linked in SAP R/3?

    Hello,
    how are attribute and text master data tables linked in SAP R/3?
    Most tables with attribute master data like T001 for company codes,
    have a text master data table T001T (add "T" to table name).
    When looking at the content of table T001 via transaction se11,
    the text are automatically joined.
    But for some tables there is no "T"-table (e.g. table TVBUR for sales offices
    has no text table TVBURT), but in se11 you get texts. There is an address
    link in TVBUR, but the Name1, etc. are empty.
    a) Where are the text stored?
    b) How does the system know of the link?
    Hope someone can help!
    Best regards
    Thomas

    Hi Thomas
    The master and text table are not linked by name, of course, if you see the text table, it has the same key fields of master table, only it has the field key spras and the field for description.
    The link beetween the tables is done by foreign key: if you check the text table TVKBT u need to see how the foreign key for field VKBUR is done:
    -> Foreing key with table TVBUR
    -> Foreing key field type -> KEY FIELD FOR A TEXT TABLE
    ->Cardinality-> 1-:CN
    It's very important the attribute sets for Foreing key field type, if it's KEY FIELD FOR A TEXT TABLE, it'll mean the table is a text table: i.e. that mean the master table is a check table for the text table, where the foreign key type is for text table.
    U can find out the text table of master table by SE11: GoTo->Text Table
    U can fined some information in table DD08L.
    Max

  • How to read and write a data from extrenal file

    Hi..
    How to read and write a data from extrenal file using Pl/sql?
    Is it possible from Dyanamic Sql or any other way?
    Reagards
    Raju

    utl_file
    Re: How to Create text(dat) file.
    Message was edited by:
    jeneesh

  • How to Read and Write .XML datas   (HELP Plz...)

    hai everybody
    how to read and write xml datas... plz give clean and simple example..
    bcoz me want to produce such type of module...
    if any one help me .. thats the only way me laid in software ladder
    plz....
    thank u in advance

    thank u for giving idiot..
    but before posting i search in google also..
    but i cant get what me expect..
    thus i posted...
    then who is ................?
    sorry javacoder01
    // plz help me
    Message was edited by:
    drvijayy2k2

  • How to modify and save the data in the table control

    how to modify and save the data in the table control

    hi priya,
    kindly go thru the code below.
    PROCESS BEFORE OUTPUT.
      MODULE status_9010.
      LOOP WITH CONTROL tab_control.
        MODULE move_data_to_table.
      ENDLOOP.
    PROCESS AFTER INPUT.
      MODULE user_cancel AT EXIT-COMMAND.
      LOOP WITH CONTROL tab_control.
        MODULE move_data_from_table.
      ENDLOOP.
    MODULE move_data_to_table OUTPUT.
    This is to move the data from the internal table to *the table control
    *zmpets_mode-modecode, zmpets_range-rangeid, *zmpets_servfacto-factor are field names of the table *control columns.
      READ TABLE int_factor INDEX tab_control-current_line.
      IF sy-subrc = 0.
        zmpets_mode-modecode = int_factor-modecode.
        zmpets_range-rangeid = int_factor-rangeid.
        zmpets_servfacto-factor = int_factor-factor.
      ENDIF.
    ENDMODULE.                 " move_data_to_table  OUTPUT
    **********************************************8888
    MODULE move_data_from_table INPUT.
    *To move the data from the table control to internal *table 'INT_FACTOR'.
      int_factor-chk = line.
      int_factor-modecode = zmpets_mode-modecode.
      int_factor-rangeid = zmpets_range-rangeid.
      int_factor-factor = zmpets_servfacto-factor.
       MODIFY int_factor INDEX tab_control-current_line.
        IF sy-subrc NE 0.
          APPEND int_factor.
          CLEAR int_factor.
        ENDIF.
    ENDMODULE.                 " move_data_from_table  INPUT
    if this helps , kindly award points.
    for any clarification just mail me.
    regards,
    Anversha.S
    [email protected]

  • How to store and retrieve blob data type in/from oracle database using JSP

    how to store and retrieve blob data type in/from oracle database using JSP and not using servlet
    thanks

    JSP? Why?
    start here: [http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html]

  • How to create user function in Data Functions in Query Designer?

    Could someone tell me how to create user function in Data Functions in Query Designer?
    I mean function like "NDIV0" in Data Functions.
    SAP BW 3.x.
    Query Designer (SAP BW 3.x)

    Hi check the following URL, it gives how to add in Formulas in formula Builder, not in DataFunctions.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f095592f-42f7-2a10-6ab1-c836a559b48f
    Thanks
    Reddy

  • Create Query with New Field combined with Existing InfoCube Data (BW 3.5)

    Hi Everyone!
    How would you recommend I handle the following situation?
    I have a custom InfoCube (which I will call ZCUBE) that has been deployed to production. The business would like a new query that combines Current Standard Price along with data currently stored in ZCUBE.
    Now, Current Standard Price is uniquely identified by the Material and Plant to which it is associated. These InfoObjects (Material and Plant) are characteristics of ZCUBE.
    I am strugglig since the business will not allow any changes in the design of the InfoCube (i.e. add any new characteristics/key figures).
    Is there a way to combine the two data sets? I attempted to use a Multi-Provider using ZCube and a custom ODS, but had no luck since the characteristics were so different. (ZCUBE has almost 50 characteristics defined)
    I also have tried adding the attribute Standard Price to InfoObject Plant Material (0MAT_PLANT) but that was not helpful since 0MAT_PLANT is not included in ZCUBE.
    From what I can tell I should create an InfoSet using ZCUBE and potentially a new ODS, but that isn't going to work since you can create InfoSets using InfoCubes in BW 3.5.
    So... I am at a loss now. Any assistance would be appreciated!
    Thanks-
    Nathalie

    Thank you very much for your responses!
    I went ahead and created a custom ODS (Z_ODS) that contained the keys Material and Plant and had the data field Standard Price. I then created a Multi-Provider to sit on top of the custom cube and the custom ODS. Unfortunately, I am not getting the correct response since the Multi-Provider returns a union of the two infoproviders.
    Z_ODS
    0Material (key)
    0Plant (key)
    Standard Price
    Z_Cube
    0Material (char)
    0Plant (char)
    Char1 (char)
    Char2 (char)
    Char3 (char)
    0FiscalYear
    Key1....
    MultiCube
    0Material = 0Material
    0Plant = 0Plant
    Char1
    0FiscalYear
    Standard Price
    Key 1
    If I run a query just using Material and Plant in the return, the Standard Price and Key1 are returned correctly. If I include Fiscal Year in the query, the standard price is returned in a row associated to a blank Fiscal Year. See example below.
    Query 1
    Plant1   Material1   StandardPrice1   Key1
    Plant2   Material2   StandardPrice2   Key2
    Query 2
    FiscalYear2009   Plant1   Material1   #(blank StandardPrice)   Key1
    FiscalYear2009   Plant2   Material2   #(blank StandardPrice)   Key2
    FiscalYear# (blank) Plant1   Material1   StandardPrice1 #(Blank Key1)
    FiscalYear# (blank) Plant2   Material2   StandardPrice2 #(Blank Key2)
    I know I should be using an InfoSet, but we are on BW 3.5... so I can't include a cube in an InfoSet.
    I believe that the solution will be to add all relevant characteristics to the custom ODS... but that is going to be a much bigger challenge then originally expected. Please let me know if I am missing something... a silver bullet would be much appreciated
    Thanks everyone!
    Nathalie

  • How to calculate and save planning data in bex input-ready query using keyfigures for calculation from different infoproviders

    Hi Dear All,
    We have two real time infocubes and two aggregation levels based on these cubes in one multiprovider
    first cube1 is like
    char1| char2| keyfig_coefficient(single value for each combination of char1 and char2)
    same aggregation level1
    (we have input query to fill coefficients by one responsible user)
    second cube2 is like
    char1| char2| keyfig_quantity| keyfig_result
    same aggregation level2
    Input ready query should be like (for all other users of different org units)
    char1|char2|keyfig_coeff| keyfig_quant(for input) | keyfig_result = keyfig_coeff*keyfig_quant(calculated value, should be saved to cube2)
    And we don't have pregenerated lines in cube2, users have to add new lines themselves by wad.
    Question is, what is the optimal (easiest) way to make calculation and save result data to cube2 where keyfigures for calculation should be used from different infoproviders. I need just a hint.
    Appreciate any help.
    Nadya.

    I found decision, agregation levels sould be based on multiprovider, not included.

  • How to copy and  paste the data directly from the excel to the PDF?

    hi,
    I have found the same question on the link:
    How to copy excel sheet to pdf form?
    But I didnt get my answer through that forum.
    My requirement is dat I should copy the data from excel sheet and directly paste it to PDF form.
    When I am trying to copy and paste ..all the data is getting pasted into a single block only.
    Kindly help.
    Thanks & Regards,
    Lina

    So you want the user/person to do the "cut&paste" action (ie. ctrlc ctrlv) and have the data paste itself across rows correctly much like Excel does. I don't think this "intelligence" is built into Adobe table controls as it is in Excel (and Excel is smart enough to even handle it different ways depending on how the user selects cells).
    The only thing I can think of is that you could "capture" the user trying to paste into a cell/row in your table (maybe in the onFocus or onClick events), then grab the data, parse it out (but looking for some character) and then have your code distribute the data across the rows. However, I personally think that would be a lot of overkill and prone to other issues and errors.

  • How to call and use xml data on UI LineChart using HTTPservice

    i want to make the LineChart component in the UI to get xml Array data from an URL (as example: http://localhost/ECG/Array) and view the data as a waveform. can anybody help me with this ??

    If you are saying that your XML is stored in a table, I'm not sure there is any method, using DAL or rule, that would know how to load XML from there. I can be wrong, but I think it has to load the XML from disk only - either as the extract file or as an external file referenced from the extract - using a Rule or DAL to go after the external file.
    Perhaps you could clarify the situation a little more and someone might offer a suggestion.

  • How to remove and add plotted data?

    In my code below I would like to add two buttons and by clicking on a button("Remove") it will remove one by one plotted data,and plot it back by clicking on the button("Add") such as the examples:
    Full data plotted by running the class
    Now by a single click on a Remove button last data point disappear
    another click and again last data point disappear, and so on
    The inverse operation would be performed by clicking on "Add" button: each click will add back a data point
    import javafx.application.Application;
    import javafx.beans.property.SimpleDoubleProperty;
    import javafx.event.EventHandler; 
    import javafx.scene.chart.NumberAxis;
    import javafx.scene.chart.XYChart;
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.chart.LineChart;
    import javafx.scene.control.Button;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.BorderPane;
    public class XYMove extends Application {
    BorderPane pane;
    XYChart.Series series1 = new XYChart.Series();
    SimpleDoubleProperty rectinitX = new SimpleDoubleProperty();
    SimpleDoubleProperty rectX = new SimpleDoubleProperty();
    SimpleDoubleProperty rectY = new SimpleDoubleProperty();
    @Override
    public void start(Stage stage) {
    final NumberAxis xAxis = new NumberAxis(12, 20, 1);
    double max = 12;
    double min = 3;
    max *= (1+((double)3/100));
    min *= (1-((double)3/100));
    final NumberAxis yAxis = new NumberAxis(min, max, 1);
    xAxis.setAnimated(false);
    yAxis.setAnimated(false);
    yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis) {
        @Override
        public String toString(Number object) {
            return String.format("%2.0f", object);
    final LineChart<Number, Number> lineChart = new LineChart<Number, Number>(xAxis, yAxis);
    lineChart.setCreateSymbols(false);
    lineChart.setAlternativeRowFillVisible(false);
    lineChart.setAnimated(false);
    lineChart.setLegendVisible(false);
    series1.getData().add(new XYChart.Data(1, 3));
    series1.getData().add(new XYChart.Data(2, 8));
    series1.getData().add(new XYChart.Data(3, 6));
    series1.getData().add(new XYChart.Data(4, 7));
    series1.getData().add(new XYChart.Data(5, 5));
    series1.getData().add(new XYChart.Data(6, 6));
    series1.getData().add(new XYChart.Data(7, 4));
    series1.getData().add(new XYChart.Data(8, 7));
    series1.getData().add(new XYChart.Data(9, 6));
    series1.getData().add(new XYChart.Data(10, 7));
    series1.getData().add(new XYChart.Data(11, 6));
    series1.getData().add(new XYChart.Data(12, 7));
    series1.getData().add(new XYChart.Data(13, 6));
    series1.getData().add(new XYChart.Data(14, 12));
    series1.getData().add(new XYChart.Data(15, 10));
    series1.getData().add(new XYChart.Data(16, 11));
    series1.getData().add(new XYChart.Data(17, 9));
    series1.getData().add(new XYChart.Data(18, 10));
    pane = new BorderPane();
    pane.setCenter(lineChart);
    Scene scene = new Scene(pane, 800, 600);
    lineChart.getData().addAll(series1);
    stage.setScene(scene);        
    scene.setOnMouseClicked(mouseHandler);
    scene.setOnMouseDragged(mouseHandler);
    scene.setOnMouseEntered(mouseHandler);
    scene.setOnMouseExited(mouseHandler);
    scene.setOnMouseMoved(mouseHandler);
    scene.setOnMousePressed(mouseHandler);
    scene.setOnMouseReleased(mouseHandler);
    stage.show();
    EventHandler<MouseEvent> mouseHandler = new EventHandler<MouseEvent>() {
    @Override
    public void handle(MouseEvent mouseEvent) {
        if (mouseEvent.getEventType() == MouseEvent.MOUSE_PRESSED) {            
            rectinitX.set(mouseEvent.getX());
        else if (mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED || mouseEvent.getEventType() == MouseEvent.MOUSE_MOVED) {
            LineChart<Number, Number> lineChart = (LineChart<Number, Number>) pane.getCenter();
            NumberAxis xAxis = (NumberAxis) lineChart.getXAxis();
            double Tgap = xAxis.getWidth()/(xAxis.getUpperBound() - xAxis.getLowerBound());
            double newXlower=xAxis.getLowerBound(), newXupper=xAxis.getUpperBound();            
            double Delta=0.3;
            if(mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED){
            if(rectinitX.get() < mouseEvent.getX()&& newXlower >= 0){   
                newXlower=xAxis.getLowerBound()-Delta;
                newXupper=xAxis.getUpperBound()-Delta;
        else if(rectinitX.get() > mouseEvent.getX()&& newXupper <= 22){   
                newXlower=xAxis.getLowerBound()+Delta;
                newXupper=xAxis.getUpperBound()+Delta;
            xAxis.setLowerBound( newXlower );
            xAxis.setUpperBound( newXupper );                       
            rectinitX.set(mouseEvent.getX());                                
        public static void main(String[] args) {
            launch(args);
    }Thanks!

    I would use an ObservableList (probably backed by a LinkedList) of XYChart.Data to store the collection of "deleted" data points. Create the buttons as usual; your "Remove" button's event handler should remove the last element of the series and add it to the first element of the deleted items data points. The "Add" button should remove the first element of the deleted data points and add it to the end of the series. You can bind the "disable" property of the remove and add button to Bindings.isEmpty(series1.getData()) and Bindings.isEmpty(deletedDataPoints), respectively.
    Something like
    ObservableList<XYChart.Data<Number, Number>> deletedDataPoints = FXCollections.observableList(new LinkedList<XYChart.Data<Number, Number>>());
    removeButton.setOnAction(new EventHandler<ActionEvent>() {
      @Override
      public void handle(ActionEvent event) {
        deletedDataPoints.add(0, series1.getData().remove(series1.getData().size()-1));
    addButton.setOnAction(new EventHandler<ActionEvent>() {
      @Override
      public void handle(ActionEvent event) {
        series1.getData().add(deletedDataPoints.remove(0));
    removeButton.disableProperty().bind(Bindings.isEmpty(series1.getData()));
    addButton.disableProperty().bind(Bindings.isEmpty(deletedDataPoints));The other approach would be to use a separate List for all the data points, and keep an integer variable storing the number of data points displayed. Your "remove" button would decrement the number displayed, and your "add" button would increment the number displayed. Both would also call
    series1.getData().setAll(allDataPoints.sublist(0, numberOfDisplayedPoints));You might even be able to make the numberOfDisplayedPoints an IntegerProperty and bind the data property of the series to it in a nice way. This approach probably doesn't perform as well as the previous approach (using a stack of deleted points), because you are not directly giving the chart as much detailed information about what has changed.
    Both approaches get problematic (in the sense that you need to carefully define your application logic, and then implement it) if the underlying data has the potential to change.

  • How to measure and limit the data volume?

    Morning.
    I need a tool to measure and limit the data volume of internet usage. My internet tariff allows a maximum of 5 GB data volume per month. Exceeds my usage that amount the bandwidth will reduce to only 64 kB/s or the exceeding data volume must be paid extraordinarily expensive.
    Do you know a tool that measures the data volume in a given time period and can alert or limit the internet connection for instance if the data volume at the half of the months has exceeded more than the half of the data volume for the entire month?
    Kind regards, vatolin

    You could generate large amount of data and then use any SNMP Viewer (BMC Dahsboard, Solarwinds, Nagios, CiscoWorks etc.) to see the throughput of the interfaces at peak. But why bother? Cisco has been commented by numerous research firms (Gartner etc.) to be very precise about their stated throughputs.
    Regards
    Farrukh

  • Retrieving spatial and non spatial data in one query

    Hello. I am having slight difficulties using JDBC to retrieve both spatial and non spatial data in the same query. The following is code from a sample program of mine that retrives spatial data from spatial tables.
    (In spatialquery geom is a geometry column and city is simply the name of the city):
    try
    Geometry geom = null;
    String database = "jdbc:oracle:thin:@" + m_host + ":" + m_port + ":" + m_sid;
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    con = (OracleConnection)DriverManager.getConnection(database, sUsername, sPassword);
    GeometryAdapter sdoAdapter =
    OraSpatialManager.getGeometryAdapter("SDO", "8.1.7", STRUCT.class, null, null, con);
    String spatialquery = "SELECT a1.geom, a1.city \n" +
    "FROM cities a1";
    Statement stmt = con.createStatement();
    OracleResultSet rs = (OracleResultSet) stmt.executeQuery(spatialquery);
    int i = 0;
    int noOfFeatures = 2;
    while (rs.next())
    for(i = 1; i <= noOfFeatures; i++)
    STRUCT dbObject = (STRUCT)rs.getObject(i);
    try
    geom = sdoAdapter.importGeometry(dbObject);
    catch(GeometryInputTypeNotSupportedException e)
    System.out.println("Input Type not supported");
    catch(InvalidGeometryException e)
    System.out.println("Invalid geometry");
    System.out.println(geom);
    }//end while loop
    This retrieves the sptial data fine, however when I attempt to retreive the non-spatial data I keep getting a "ClassCastException" error. I understand it is something to do with "STRUCT dbObject = (STRUCT)rs.getObject(i);" line. Can anyone tell me how to retrieve both spatial and non-spatial data in the one query using JDBC. I have tried nearly everything at this stage. Cheers joe

    Theresa A Radke
    Posts: 20
    OTN Member Since: Jul, 2001
    retrieving spatial and non spatial in same query. May 23, 2003 12:02 AM
    retrieving spatial and non spatial in same query.

  • How to match time alone (without date) in a query

    Hi, I have a date colum named timeprop, where a time value has been inserted through:
    DateFormat.getTimeInstance(DateFormat.MEDIUM, "de_DE").parse("11:12:13")
    In SQL developer I can check the inserted value as:
    select timeprop from version_table where timeprop is not null;
    getting:
    TIMEPROP
    01.01.1900 11:12:13
    so I guess Oracle added a default date as 1.01.1900. Ok.
    But if I run:
    select timeprop from version_table where timeprop = to_date('11:12:13', 'hh24:mi:ss');
    then I get no result. I succeed only after adding that default date to the query - by patching the format as well - e.g.
    select timeprop from version_table where timeprop = to_date('1.01.1900 11:12:13', 'dd.mm.yyyy hh24:mi:ss');
    Basically, no time alone in a query.
    Is this transformation always needed or am I missing anything from this game ?
    Server is 11gr1.
    Thanks.

    sperkmandl wrote:
    Hi, I have a date colum named timeprop, where a time value has been inserted through:
    DateFormat.getTimeInstance(DateFormat.MEDIUM, "de_DE").parse("11:12:13")I can only suppose that means that you are not using setTime().
    >
    In SQL developer I can check the inserted value as:
    select timeprop from version_table where timeprop is not null;
    If you database is NOT Oracle then now would be the time to state that.
    > Is this transformation always needed or am I missing anything from this game ?
    The data type in the database DDL is relevant.
    Oracle doesn't have any time only data types.
    So if and only if you (and everyone else) has inserted time values in a consistent manner then you could use normal comparison by using setTime().
    If that isn't true then you must craft Oracle PL/SQL to remove the time part of the timestamp values before you do your comparisions.

Maybe you are looking for

  • Sending appointment from ABAP to Outlook

    Hi. I would like to know if there is a way to send appointment/meeting requests to MS Outlook from SAP (ABAP). I know how to send Email from SAP to Outlook with/without attachments using the "SOI1" Function-group, but I don't think (or I didn't find

  • MAVERICKS UPDATE AND ADOBE CS6

    Hello, i am with  Macbookpro mac os x 10.7.5 and i am going to update to Mavericks. I have adobe creative suit 6 (AE, PS, PR etc.) My question is-> When i updato to mavericks will all these programs and actually any program i have on my mac run as it

  • CS5 Encode Failure

    I have CS5 installed on my computer.  I am in the process of trying to burn a DVD for a presentation that I must give the first week in August, 2013.  I have rendered and assembled my Adobe Premiere *.prproj and it runs well.  When I "dynamic link" i

  • I frequently get the message that "safari can't find the server" or "you ate not connected to internet" when I definitely am.

    Why do I frequently get the messages that "Safari can't find the server" or "Your are not connected the the Internet" when I definitely am. This happens most frequently when I try to access the App. Store.

  • New Phone and Alarm

    I just got the Blackberry 8310 phone, so far I love the phone. The alarm is not always getting me up, I set the number of beeps to 3(max number of beeps). Is there a way to increase the max number of beeps or set it to when I click a button? My old p