Expression node Bug?

Hello

anyone (using the decimal point decimal) could you please try this expression in the node of the expression:

100 * (1 + x * 0, 003908 + Pow (x, 2) * (-5, 7746 * Pow (10, -7)))

The error message is: lack of parenthesis (error is marked by a character ' # ': 100 * (1 + x * 0 003908 #+ pow(x,2) *(-5,7746*pow")" "))

I use the decimal point comma (this is Germany).

Funny facts:

-to any other number instead of work 0,003908

-replace the separator of decimal with a dot (.) makes it work, too--even if the second factor (5,7746) ends with a semicolon

I'm using LabVIEW 2011, BTW.

Not a big deal. In any case, I am writing my applications in c# after too many real issues of LV. I wanted just a small sign test and thought I give another chance to LabVIEW.

Read the help:

Note  Formula node accepts only the period (.) as the decimal separator. The node does not recognize decimal separators located.

Tags: NI Software

Similar Questions

  • Add pre-configured function palette of expression node?

    Is there a way to add a node of preconfigured expression custom palette funtion?

    LabVIEW offers a couple of them (like the radians into degrees and degrees in radians) in the NI_AngleConversion.lvlib.  I can view the palette of rapid decline, type rad to deg and click in my block diagram to get to this:

    I watched the screws in this library and tried to set up a library for me in the same way, but have not had much luck.

    I CAN add to the library, but I have to wire the terminals get a square standard VI icon in my diagram when I try to use it.

    However, I really like the compactness of the Expression node on my block diagram and do not want the VI icon to be used.  I want just a node expression preconfigured to appear that looks like this:

    Anyone know if this is possible?

    Thank you

    -Randy

    You can place materials VI of the items on the pallet.

    Read this.  http://digital.NI.com/public.nsf/allkb/61A6A949B060A20186256AD900793E52

    In addition, you can do a Subvi.  It doesn't have to be a square icon.  You can make your smaller icon and using a smaller box on your icon.  Do not fill the external pixels of the icon.

    For something like a basic trigonometric calculations, I think you're better off using primitive LabVIEW and a Subvi.  Just as the icon of the size.

  • node bug formula?

    Hello

    I can't understand what I'm doing wrong with the node of the formula.  I tried this on versions of LabView and Labview 2013 2011 and got the same results.  Basically I want to beyond the numbers with a decimal number to the node form.  If the number is negative-1, and then assign the value-1, and if the number is more positive than 1, then set the number of + 1.  Anything else simply return the input and the output.

    This arithmetic works fine when I use the function "Select" discreet LabVIEW.  In the node of the formula, I have this code:

    if(Xin < -1.0)
       Xout = -1;
    else
       Xout = Xin;
    
    if(Xin > 1.0)
       Xout = 1;
    else
       Xout = Xin;
    

    Where Xin is the entry and the exit node Xout node. It works for anything while this is + 1.  If you pass 1.5, you get 1.  If you spend 0.5 you get 0.5.  It even works for a negative number greater than-1.  So in passing - 0.5 you get-0.5 etc.   The problem appears when passing something more negative-1.  If I spent-1.5, I get-1.5 as the answer.  The method of discrete function Labview gives me the right answer as -1 during the passage of-1.5.

    I even tried to make sure that the entry is cast to float, just in case he got mixed up as an integer.  But the results are the same.  So either I do not understand the syntax of the formula of node, or something else happens.

    float32 X =  Xin;
    if(X < -1.0)
       Xout = -1;
    else
       Xout = Xin;
    
    if(X > 1.0)
       Xout = 1;
    else
       Xout = Xin;
    

    Review the in X = - 1.5 cases.

    The first test sets-1 Xout.

    Then the second test runs and sets Xout Xin = - 1.5.

    Last test victories.

    In primitive LabVIEW using the range & force function could simplify things a bit and it is very clear what you were trying to do.

    Lynn

  • Cannot see items under the node Application Express on the schema of the APEX

    I installed 3.1.2 in my database (10.2.0.4) APEX, and I want to explore the developer SQL 1.5.5 / Apex integration feature.

    Problem is... when I go on the pattern that has the Apex applications, I see the 'Application Express' node, but SQL Developer shows nothing under (it's just blank).

    I'm doing something wrong? I've looked under all the schema associated with the APEX (i.e. flows_030100), but the node Application Express is always empty.

    Any help much appreciated.

    Hello

    I think that you must be logged in as owner of the analysis of an application schema to see under the node Application Express.

    HTH,

    Chris

  • Enter the mathematical expression during execution

    Thanks to LabVIEW 7.0.  Is there a way to enter a mathematical expression during execution?  I am collection of bytes of a device in which the user may have to configure the runtime.  For example, if a package returns 2 bytes, i and j, the user wants to run an equation on the bytes as y = 200i - 3j.  The equation could be anything.  I looked at Expression nodes and formula, but it doesn't seem to be a way to get into the equation by program.  Anyone has any ideas on this subject?

    Thank you.

    I opened LV 7.1 which is the oldest I have.  In this version, the mathematics are in the palette to analyze it.

    In the functions palette click on search and type "parse" or "formula". These searches are formula several screw analysis

    If you have only the Base of LV version, you don't have these screws

    Lynn

  • Iterate CSV in JSF

    How can browse a separated by commas in JSF without using controlled beans?

    For example, I have an expression:
    #{node.value} which will return a string "value1, value2, value3". Is it possible so I can iterate through these values?
    I thought that the c:forEach can work with the CSV but apperently that I can't.

    I tried
    <c:forEach items="#{node.value}" var="val">
       <af:outputText value="#{val}"/>
    </c:forEach>
    But I get an error "don't know how iterate over 'elements' provided in c:forEach.

    I also tried with the af: forEach and it gave me the error message indicating that the elements must point to a list or a table.

    Then... Is it possible to achieve what I want?

    On a sidenote... I do not control what is in the node so I can't just change the model.
    I use this in a template for the presenter content in webcenter. node is indeed the metadata of a document from the University Complutense of MADRID, so I can not change it...

    Hi Yannick

    Why not solve your expression "#{node.propertyMap ['xMyField'] .value}" in a managed bean method and write the code in order to get back something that you can iterate?

    concerning
    Jan

  • Development and execution environments

    Hello

    The new Linux to oracle online store doesn't seem to be 'runtime' www.oracle.com/store
    and a few other internet APEX applications do not use the version of the runtime to their applications.

    I browsed the forum and it seems that the consensus is to use the Runtime for the Production and development of Test/Devl. Are there out there who take the risk of the execution of the comprehensive development in Production environment? There may be other security measures that can be taken?

    -How you deploy an application to the runtime environment? I guess there is an API in PL/SQL, you spend your f10X.sql to?

    Has anyone tried ensure the APEX at the Web server level? Somehow configure your link external modplsql to disable admin via some Apache features or parameters of DAD? Then allow an internal web server serve a normal full development DAD modplsql?

    I kind of just glose and realize there are many solutions the question... but any feedback is much appreciated!

    Thank you
    AJ

    Lateralus says:
    -How you deploy an application to the runtime environment?

    (a) run the export script in SQL * more.

    or

    (b) use Oracle SQL Developer to connect to the workspace schema. There is a 'Application Express' node you can right-click and choose Import an Application.

    M

  • First HP axis line bug in Boolean expressions (Adv. Graphing App)

    When the graphic representation of an inequality and excluding a part of it using Boolean expressions, there is a bug where the first will be graphic axis lines are part of the solution by using 'AND NOT '.

    An example of this is that if you were to graph a circle of RADIUS < = 5 and remove a circle of RADIUS < = 4.

    Example:

    V1:=(X^2+Y^2<=5^2) AND NOT (X ^ 2 + Y ^ 2 < = 4 ^ 2)

    Axis lines X - there exist in the excluded (X ^ 2 + Y ^ 2 < = 4 ^ 2) and can be traced back as if it were part of the solution of V1.

    Interestingly, if V2 is set to be equal to V1 (X - 0.5, Y - 0.5), axis lines are no longer aligned with the axis of the grid, but are rather shifted-0.5 on the X and Y as well as the rest of the V2.

    In this case, the equation can be modified to work around the bug by removing the NOT and change the sign of the circle radius 4-more of:

    V1:=(X^2+Y^2<=5^2) AND (X ^ 2 + Y ^ 2 > 4 ^ 2)

    Does anyone know if there is a reported bug?  Where I might be able to look to see a list of known issues?

    Thanks for the detailed examples. It took me a while to see what you were talking about, but once I did I had the info the graphic calculator expert.

  • node of expression

    What is the correct syntax for an exhibitor with the node of expression?
    I looked in the help of LabVIEW, and it seemed that it was the ' ^' character.

    except that does not appear to be correct:

    The correct output should be 2, but LabVIEW returns 3.

    There *. ^ is the bitwise XOR operation.

  • I got a Message from SeqEdit.exe problem when it is inserted expression, is this a bug?

    I have tried to insert a phrase in the browser of the Expression to evaluate limits, but whenever I chose "insert" he displied a problem SeqEdit.exe post and quited TS.

    The problem was always with the same phrase. There are 3 seals files to show the problem. Is this a bug or I do something wrong?

    I'll appreciate your help.

    H.P.

    Here's a quick solution to be able to use the browser of the Expression to insert functions. (Once you add the CheckLimits() function to remove the final closing ')'. Fill the rest of the function with the expected arguments 4 and then add a closing ')'.

    This is the prototype of CheckLimits

    CheckLimits (number value, number, low number, String comparisionType, Boolean, optional doNotCopyToResults = TRUE)

    Kind regards

    Steven Zittrower

    Technical sales engineer

    National Instruments

    http://www.NI.com/support

  • HFM SmartView Bug? HsGetValue retrieves the data for non-existent entity node.

    Hi guys,.

    We are facing a problem of SmartView 11.1.2.5.520 in combination with HFM 11.1.2.4.103. I would like to know if you can reproduce it.

    Assume it's our hierarchy of entity:

    Parent1 (EUR)

    Child1 (USD)

    Child2

    Child3

    Parent2 (GBP)

    Child4

    Children5

    We want to extract the data via "HsGetValue" for in < currency Parent > Child1, so need to entity to return node information: "Parent1.Child1." Works very well.

    Strangely enough, that's good, that the Parent2.Child1 data retrieves, although node do not exist!

    If you try it with ad hoc, an error message appears saying "Member does not exist", which is correct.

    Can someone check the BUG? If so, I'll open a SR.

    Thanks in advance!

    Carmonte

    Thank you guys! You responses helped me to understand that he is not really a bug.

    • HsGetValue retrieves a nonexistent node of to data from first available parent in the hierarchy.
    • Top of to HsGetValue retrieves no data. What is good.

    Knowing that, I can live with that.

    Thank you!

    Carmonte

  • XQuery insert node and assign the value based on an XPATH expression

    Hello

    I am trying to write a function that receives an XML as input parameters and return updated XML output

    -nodes are removed from the input XML code

    -a node must be inserted and the node value must be 1 or 0, based on an XPATH expression

    I discovered how to remove nodes, I discovered how to insert a new node, but I can not set the value of the conditionally inserted node an XPATH expression.

    Here's my current procedure and below a sample of one XML of entry. I use Oracle 12 c.

    CREATE OR REPLACE FUNCTION STRIP_XML
    (
      IN_XML IN SYS.XMLTYPE
    ) RETURN SYS.XMLTYPE AS
    p_result XMLType;
    BEGIN
      select
          xmlquery(
             'declare default element namespace "http://mad.evs.com/search"; (: :)
              copy $d := .
              modify (
      delete node $d//MainCategory/@logId,
               delete node $d/MainCategory/@id,
    -- a lot more of those delete node
     -- insert a node, but the value 1 is conditional
               insert node <DMZ>1</DMZ> after $d/MainCategory/SDataSection/EventDate)
              return $d'
            passing in_xml
            returning content
            ) into p_result
            from dual;
    
    
      RETURN p_result;
    END STRIP_XML;
    

    The condition for the value of is


    HASPATH (//DigitalAssets/DigitalAsset [@ available = "true" and @videoFormatId = "11"] / VideoLocations/Videorental [@typeId = "8"]) then 1 else 0


    It is complex because DigitalAssets/DigitalAsset is a collection. Here is an example of an XML to entry



    <MainCategory xmlns="http://mad.evs.com/search" id="9" logId="3349" logType="3">
      <Name>Sport</Name>
      <Serie id="163" externalId="557">
      <TitleAKA>UCL 2006/07</TitleAKA>
      <DigitalAssets available="true" som="20:28:49:05" dur="00:02:46:04" videoDurationMinutes="3">
         <DigitalAsset available="true" som="20:28:49:05" dur="00:02:46:04" videoDurationMinutes="3" videoFormatId="3">
            <VideoLocations>
                <VideoLocation id="3" path="003349MA.mxf" typeId="1" locationId="1" priority="0"/>
                <VideoLocation id="3" path="003349MA.mxf" typeId="2" locationId="1" priority="0"/>
                <VideoLocation id="3" path="003349MA.mxf" typeId="5" locationId="1" priority="0"/>
             </VideoLocations>
          </DigitalAsset>
          <DigitalAsset available="true" som="20:28:49:05" dur="00:02:46:04" videoDurationMinutes="3" videoFormatId="11">
             <VideoLocations>
                <VideoLocation id="101" path="003349MA.mpg" typeId="1" locationId="1" priority="0"/>
                <VideoLocation id="101" path="003349MA.mpg" typeId="2" locationId="1" priority="0"/>
                <VideoLocation id="101" path="003349MA.mpg" typeId="8" locationId="1" priority="0"/>
             </VideoLocations>
          </DigitalAsset>
      </DigitalAssets>
      <SDataSection xmlns="http://mad.evs.com/search">
        <EventDate>2006-08-09</EventDate>
        <LogType>3</LogType>
      </SDataSection>
    </MainCategory>
    


    In this case, because HASPATH expression could be set to true, the value of the added node must be 1.


    Any help or advice how I should fight against that would be appreciated. I have no experience with XML and XQuery, I create my function through from trial and error of the doc.


    Thanks and regards, Pierre

    Hi Pierre,.

    You can use the if-then-else statement, like this:

    Insert the node

    {

    If ($d/MainCategory/DigitalAssets/DigitalAsset[@available="true' and @videoFormatId = '11'] / VideoLocations/Videorental [@typeId = '8'])

    then 1

    0 otherwise

    }

    After $d, MainCategory, SDataSection, EventDate

    XSLT can be an alternative to the XQuery Update in this case.

  • Change the color of the nodes in the tree based on a regular expression

    Dear Experts,

    Given:
    Sample:
    http://Apex.Oracle.com/pls/Apex/f?p=53647:5
    Test/test

    Information from the workspace
    Workspace: ralab
    user: test
    password: test
    application: trees-samples
    page: 5

    Mandatory
    I can change the color of node using jQuery contains() selector based on a value, for example the project
    apex.jQuery("#eba_demo_tree").find("a:contains('Project')").css("color","red");
    Now, the question:
    How can I update the jQuery code to change the node based on a regular expression as
    ^[P]
    or in other words for all the nodes starts with P, the color needs to be changed in red?

    Best regards
    Mahmoud
    $("#eba_demo_tree a").filter(function(index){
       var lRegExp = /^m/i; //or new RegExp('^m', 'i');
       //trim to get rid of leading space due to space in encapsulated ins-element
       return lRegExp.test($(this).text().trim());
    });
    

    http://API.jQuery.com/filter/
    http://www.w3schools.com/jsref/jsref_obj_regexp.asp
    http://www.regular-expressions.info/JavaScript.html

  • Window bug Expression SOA JDeveloper 11.1.1.5.0

    Hello

    I use JDev 11.1.1.5 version and SOA Composite Editor 11.1.1.5.0 for SOA development. Problem is that I am not able to open the window of expression in order to assign an expression to a variable of bpel in SOA project. Is this a bug with JDev or something else?

    Thank you

    Hi bpeltechie,

    Please tell us what who and how you try to do?

    I believe that you drag the icon of the Expression on the target variable and it does not open the window of Expression for you to add content.

    It's certainly not a bug and problem with Jdevelper individual as it works fine in my case and many others still too I know. Yes, in some cases, I saw him take a long time to open in front of which the user patience usually gives upward.

    Assuming that you have already tried to restart the machine and Jdeveloper (otherwise try it please), I suggest you reinstall the Jdeveloper after completely installing it and delete the folder in the following location also.

    C:\Documents and Settings\\Application Data\JDeveloper

    Test and let us know how it goes.

    Kind regards
    Neeraj Sehgal

  • not an expression GROUP BY - bug in Oracle 10 g?

    Hello
    I'm 00979. 00000 - "not a GROUP BY expression" error on Oracle 10g 10.2.0.4.0 - Production 64-bit.

    To illustrate my problem, I have created following the example.
    Think I have a shop with clothes. Whenever I sell something, I store this information in the database - storage in real time, type of clothing (pants, socks,...) and the size of the room (M, L, XL,...).
    Now, the system account statistics every hour. So he's going thru the table with parts sold and counts the number of pieces by clothing type and size from the start of the day. It is important to realize that it is since the beginning of the day. For this reason, the number of pieces sold in the statistical table grows every hour (or is at least on the same value as in the previous hour).

    Now, this table, I need to make new statistics. I want a statistic how many pieces by size, I sold every hour.
    I created this application for this:
    SELECT TIME, xSIZE, (SOLD  - NVL((SELECT SUM(S1.SOLD)
                                      FROM STATISTICS S1
                                      WHERE S1.xSIZE = S.xSIZE
                                        AND TRUNC(S1.TIME, 'HH24') + 1/24 = S.TIME
                                        AND TO_CHAR(S1.TIME, 'HH24') != '23'
                                        AND S1.xSIZE IS NOT NULL
                                      GROUP BY TRUNC(S1.TIME, 'HH24'), S1.xSIZE),0)) SOLD
    FROM(
    
    
    SELECT TRUNC(S.TIME, 'HH24') TIME, S.xSIZE, SUM(S.SOLD) SOLD
    FROM STATISTICS S
    WHERE S.xSIZE IS NOT NULL
    GROUP BY TRUNC(S.TIME, 'HH24'), S.xSIZE
    --ORDER BY 1 DESC
    ) S
    ORDER BY TIME DESC, xSIZE ASC
    First I select the number of pieces sold by time and by size. To get the number of pieces sold for specific time, I need to subtract the value of number of pieces sold of the previous hour. I decided to do it with a parameter query.
    Runs the query like this I don't get "a GROUP BY expression" error. However, if I Uncomment 'ORDER BY DESC of 1' statement, the query works. I'm sure that he must do something with this line:
    AND TRUNC (S1. TIME, 'HH24') + 1/24 = S.TIME

    If you change the query like this:
    SELECT TIME, xSIZE, (SOLD  - NVL((SELECT SUM(S1.SOLD)
                                      FROM STATISTICS S1
                                      WHERE S1.xSIZE = S.xSIZE
                                        --AND TRUNC(S1.TIME, 'HH24') + 1/24 = S.TIME
                                        AND TO_CHAR(S1.TIME, 'HH24') != '23'
                                        AND S1.xSIZE IS NOT NULL
                                      GROUP BY  S1.xSIZE),0)) SOLD
    FROM(
    
    SELECT TRUNC(S.TIME, 'HH24') TIME, S.xSIZE, SUM(S.SOLD) SOLD
    FROM STATISTICS S
    WHERE S.xSIZE IS NOT NULL
    GROUP BY TRUNC(S.TIME, 'HH24'), S.xSIZE
    --ORDER BY 1 DESC
    ) S
    ORDER BY TIME DESC, xSIZE ASC
    Join the removed occasionally truncated tables and grouping truncated at the time--> the query does not lack...
    And now the best... If you run the first query on Oracle 11 g (11.1.0.6.0 - 64 bit Production version), it works.
    Anyone know why the first query does not work on 10g? Are there bugs and limitations for this version of server?
    Please don't tell me to rewrite the query in a different way, I already did, to make it work on 10g more. I'm just curious as to why it does not work on 10g.

    Finally, here are some data for the test.
    CREATE TABLE STATISTICS(
      TIME DATE DEFAULT SYSDATE,
      TYPE VARCHAR2(20),
      xSIZE VARCHAR2(2),
      SOLD NUMBER(5,0) DEFAULT 0
    )
    
    
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'T-Shirt', 'M', 10);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'Socks', 'M', 3);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'T-Shirt', 'L', 1);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'Socks', 'L', 50);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'Trousers', 'XL', 7);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 2/24, 'Socks', 'XL', 3);
    
    
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 1/24, 'T-Shirt', 'M', 13);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 1/24, 'Socks', 'L', 60);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 1/24, 'Trousers', 'XL', 15);
    INSERT INTO STATISTICS(TIME, TYPE, xSIZE, SOLD) VALUES(SYSDATE - 1/24, 'Socks', 'XL', 6);
    Edited by: user12047225 the 20.9.2011 23:12

    Edited by: user12047225 the 20.9.2011 23:45

    This is a known issue when the optimizer decides to expand the online display. You can add something (outside of ORDER BY you already used) in online mode to prevent the optimizer from its expansion. For example:

    SQL> SELECT  TIME,
      2          xSIZE,
      3          (SOLD - NVL(
      4                      (
      5                       SELECT  SUM(S1.SOLD)
      6                         FROM  STATISTICS S1
      7                         WHERE S1.xSIZE = S.xSIZE
      8                           AND TRUNC(S1.TIME, 'HH24') + 1/24 = S.TIME
      9                           AND TO_CHAR(S1.TIME, 'HH24') != '23'
     10                           AND S1.xSIZE IS NOT NULL
     11                           GROUP BY TRUNC(S1.TIME, 'HH24'),
     12                                    S1.xSIZE
     13                      ),
     14                      0
     15                     )
     16          ) SOLD
     17    FROM  (
     18           SELECT  TRUNC(S.TIME, 'HH24') TIME,
     19                   S.xSIZE,
     20                   SUM(S.SOLD) SOLD
     21             FROM  STATISTICS S
     22             WHERE S.xSIZE IS NOT NULL
     23             GROUP BY TRUNC(S.TIME, 'HH24'),
     24                      S.xSIZE
     25           --ORDER BY 1 DESC
     26          ) S
     27    ORDER BY TIME DESC,
     28             xSIZE ASC
     29  /
             SELECT  TRUNC(S.TIME, 'HH24') TIME,
                           *
    ERROR at line 18:
    ORA-00979: not a GROUP BY expression
    
    SQL> SELECT  TIME,
      2          xSIZE,
      3          (SOLD - NVL(
      4                      (
      5                       SELECT  SUM(S1.SOLD)
      6                         FROM  STATISTICS S1
      7                         WHERE S1.xSIZE = S.xSIZE
      8                           AND TRUNC(S1.TIME, 'HH24') + 1/24 = S.TIME
      9                           AND TO_CHAR(S1.TIME, 'HH24') != '23'
     10                           AND S1.xSIZE IS NOT NULL
     11                           GROUP BY TRUNC(S1.TIME, 'HH24'),
     12                                    S1.xSIZE
     13                      ),
     14                      0
     15                     )
     16          ) SOLD
     17    FROM  (
     18           SELECT  TRUNC(S.TIME, 'HH24') TIME,
     19                   S.xSIZE,
     20                   SUM(S.SOLD) SOLD,
     21                   ROW_NUMBER() OVER(ORDER BY SUM(S.SOLD)) RN
     22             FROM  STATISTICS S
     23             WHERE S.xSIZE IS NOT NULL
     24             GROUP BY TRUNC(S.TIME, 'HH24'),
     25                      S.xSIZE
     26           --ORDER BY 1 DESC
     27          ) S
     28    ORDER BY TIME DESC,
     29             xSIZE ASC
     30  /
    
    TIME      XS       SOLD
    --------- -- ----------
    20-SEP-11 L           9
    20-SEP-11 M           0
    20-SEP-11 XL         11
    20-SEP-11 L          51
    20-SEP-11 M          13
    20-SEP-11 XL         10
    
    6 rows selected.
    
    SQL> 
    

    Or use the subquery factoring (WITH clause) + undocumented hint of MATERIALIZATION:

    SQL> WITH S AS (
      2             SELECT  /*+ MATERIALIZE */ TRUNC(S.TIME, 'HH24') TIME,
      3                     S.xSIZE,
      4                     SUM(S.SOLD) SOLD
      5               FROM  STATISTICS S
      6               WHERE S.xSIZE IS NOT NULL
      7               GROUP BY TRUNC(S.TIME, 'HH24'),
      8                        S.xSIZE
      9             --ORDER BY 1 DESC
     10            )
     11  SELECT  TIME,
     12          xSIZE,
     13          (SOLD - NVL(
     14                      (
     15                       SELECT  SUM(S1.SOLD)
     16                         FROM  STATISTICS S1
     17                         WHERE S1.xSIZE = S.xSIZE
     18                           AND TRUNC(S1.TIME, 'HH24') + 1/24 = S.TIME
     19                           AND TO_CHAR(S1.TIME, 'HH24') != '23'
     20                           AND S1.xSIZE IS NOT NULL
     21                           GROUP BY TRUNC(S1.TIME, 'HH24'),
     22                                    S1.xSIZE
     23                      ),
     24                      0
     25                     )
     26          ) SOLD
     27    FROM  S
     28    ORDER BY TIME DESC,
     29             xSIZE ASC
     30  /
    
    TIME      XS       SOLD
    --------- -- ----------
    20-SEP-11 L           9
    20-SEP-11 M           0
    20-SEP-11 XL         11
    20-SEP-11 L          51
    20-SEP-11 M          13
    20-SEP-11 XL         10
    
    6 rows selected.
    
    SQL> 
    

    SY.

Maybe you are looking for