A simple query to write for the SUM of a column

Hello

I have a Quantity column. I want his total.
For a PURCHASE, I would like to add the value in the column Qunatity.
For a COPY, I want to subtract the value in the column Qunatity.
So overall, the sum of the column should give me total buy less total sells.

Any help is welcome.
Thank you.

Published by: TechVortex on August 11, 2011 11:49

Like this?

SQL> ed
Wrote file afiedt.buf

  1  with sample_data as
  2  (
  3  select 100 quantity, 'B' flag from dual union all
  4  select 200, 'B' from dual union all
  5  select 100, 'S' from dual union all
  6  select 500, 'B' from dual union all
  7  select 200, 'S' from dual
  8  )
  9  SELECT SUM(quantity),
 10         SUM(DECODE(flag, 'B', quantity,
 11                          'S', -quantity)) absolute_sum
 12* FROM   sample_data
SQL> /

SUM(QUANTITY) ABSOLUTE_SUM
------------- ------------
         1100          500

Tags: Database

Similar Questions

  • JavaScript for the sum of a column cells

    Hi all -

    I have a table in expansion (lines can be added) and I am using the line of the column footer to calculate the average of the cells which do not have the value 0.

    Form Calc is usually great, but in this case, I need to divide the sum by the number of cells that are not zero and I don't know how to do this via form Calc.

    Successfully used javascript to identify the total number of occurrences and identify the number of instances that are zero, then the part of the denominator of the equation is fine. (Number of cases - number of zeros = denominator.)

    Now, it's just the numerator. There must be a loop, right?

    Is called table: table1

    Line is called: data

    cell is called: rated

    Any thoughts? Or more effective methods? Thank you very much.

    B

    Hello

    a solution in FormCalc could look this way:

    form1.#subform[0].table1.footer.sum::calculate - (FormCalc, client)
    var c = 0
    var s = 0
    for i = 0 upto (_data.count - 1) do
      if (data[i].eValue gt 0) then
      c = Sum(c, 1)
      s = Sum(s, data[i].eValue)
      endif
    endfor
    
    if (s gt 0 and c gt 0) then
      $ = Round(s / c)
    else
      $ = 0
    endif
    

    Put this scriot in the calculate of the cell of the footer line event.

  • SQL for the sum of a column while avoiding the repetition of values

    Dear all
    I have this table called Loans_installments that contains the client's loan payments.

    sample data:
    the client_id loan_no inst_mat_date inst_seq original_inst_amt int_amt currency management
    110 2 222 100 1/1/2013 1 0 50
    110 2 222 100 1/2/2013 2 0 52
    110 2 222 100 1/3/2013 3 0 54
    110 2 222 100 1/4/2013 4 500 90
    110 2 222 100 1/5/2013 5 0 50
    110 2 222 100 1/6/2013 6 0 51
    110 2 222 100 7/1/2013 7 0 50
    110 2 222 100 1/8/2013 8 600 105
    110 2 222 100 1/9/2013 9 0 50
    110 2 222 10 100 1/10 / 2013 0 54
    110 2 222 100 1/11 / 2013 11 0 50
    110 2 222 100 1/12 / 2013 12 700 120



    now what I want to do the sum of int_amt field based on original_inst_amt value (0 or a value) and put the result on the int_amt who has an orig_inst_amt value <>0.

    the result should be like this:


    the client_id loan_no inst_mat_date inst_seq original_inst_amt int_amt currency management
    110 2 222 100 1/1/2013 1 0 0
    110 2 222 100 1/2/2013 2 0 0
    110 2 222 100 1/3/2013 3 0 0
    110 2 222 100 1/4/2013 4 500 246
    110 2 222 100 1/5/2013 5 0 0
    110 2 222 100 1/6/2013 6 0 0
    110 2 222 100 7/1/2013 7 0 0
    110 2 222 100 1/8/2013 8 600 256
    110 2 222 100 1/9/2013 9 0 0
    110 2 222 100 1/10 / 2013 10 0 0
    110 2 222 100 1/11 / 2013-11 0 0
    110 2 222 100 1/12 / 2013 12 700 274


    any help please.

    With the help of the clause type

    SQL> with t
      2  as
      3  (
      4  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/1/2013','mm/dd/yyyy') inst_mat_date, 1  inst_seq, 0   original_inst_amt, 50 int_amt from dual
      5  union all
      6  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/2/2013','mm/dd/yyyy') inst_mat_date, 2  inst_seq, 0   original_inst_amt, 52 int_amt from dual
      7  union all
      8  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/3/2013','mm/dd/yyyy') inst_mat_date, 3  inst_seq, 0   original_inst_amt, 54 int_amt from dual
      9  union all
     10  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/4/2013','mm/dd/yyyy') inst_mat_date, 4  inst_seq, 500 original_inst_amt, 90 int_amt from dual
     11  union all
     12  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/5/2013','mm/dd/yyyy') inst_mat_date, 5  inst_seq, 0   original_inst_amt, 50 int_amt from dual
     13  union all
     14  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/6/2013','mm/dd/yyyy') inst_mat_date, 6  inst_seq, 0   original_inst_amt, 51 int_amt from dual
     15  union all
     16  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/7/2013','mm/dd/yyyy') inst_mat_date, 7  inst_seq, 0   original_inst_amt, 50 int_amt from dual
     17  union all
     18  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/8/2013','mm/dd/yyyy') inst_mat_date, 8  inst_seq, 600 original_inst_amt, 105 int_amt from dual
     19  union all
     20  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/9/2013','mm/dd/yyyy') inst_mat_date, 9  inst_seq, 0   original_inst_amt, 50 int_amt from dual
     21  union all
     22  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/10/201','mm/dd/yyyy') inst_mat_date, 10 inst_seq, 0   original_inst_amt, 54 int_amt from dual
     23  union all
     24  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/11/201','mm/dd/yyyy') inst_mat_date, 11 inst_seq, 0   original_inst_amt, 50 int_amt from dual
     25  union all
     26  select 110 branch, 2 currency, 222 client_id, 100 loan_no, to_date('1/12/201','mm/dd/yyyy') inst_mat_date, 12 inst_seq, 700 original_inst_amt, 120 int_amt from dual
     27  )
     28  select branch
     29       , currency
     30       , client_id
     31       , loan_no
     32       , inst_mat_date
     33       , inst_seq
     34       , original_inst_amt
     35       , decode(original_inst_amt, 0, 0, sum(int_amt) over(partition by cnt)) int_amt
     36    from (
     37            select branch
     38                 , currency
     39                 , client_id
     40                 , loan_no
     41                 , inst_mat_date
     42                 , inst_seq
     43                 , original_inst_amt
     44                 , int_amt
     45                 , cnt
     46              from t
     47             model
     48             dimension by
     49             (
     50                inst_seq
     51             )
     52             measures
     53             (
     54                branch, currency, client_id, loan_no, inst_mat_date, original_inst_amt, int_amt, 1 cnt
     55             )
     56             rules
     57             (
     58                 cnt[any] = case
     59                                   when original_inst_amt[cv()-1] > 0 then
     60                                      cnt[cv()-1] + 1
     61                                   else
     62                                      nvl(cnt[cv()-1], cnt[cv()])
     63                               end
     64             )
     65         )
     66  /
    
        BRANCH   CURRENCY  CLIENT_ID    LOAN_NO INST_MAT_   INST_SEQ ORIGINAL_INST_AMT    INT_AMT
    ---------- ---------- ---------- ---------- --------- ---------- ----------------- ----------
           110          2        222        100 01-JAN-13          1                 0          0
           110          2        222        100 02-JAN-13          2                 0          0
           110          2        222        100 03-JAN-13          3                 0          0
           110          2        222        100 04-JAN-13          4               500        246
           110          2        222        100 05-JAN-13          5                 0          0
           110          2        222        100 06-JAN-13          6                 0          0
           110          2        222        100 08-JAN-13          8               600        256
           110          2        222        100 07-JAN-13          7                 0          0
           110          2        222        100 09-JAN-13          9                 0          0
           110          2        222        100 11-JAN-01         11                 0          0
           110          2        222        100 10-JAN-01         10                 0          0
           110          2        222        100 12-JAN-01         12               700        274
    
    12 rows selected.
    
    SQL>
    
  • query to search for the user of the application

    Hello

    What is the query to search for the user of the application in the sql command?

    I tried the query below
    select app_user from dual;
    app_user invalid identifier
    Thank you.

    Hello skud,
    The following SQL statement will give you the APP_USER which is an environmental variable in the APEX:

    SELECT v('APP_USER') FROM DUAL;
    

    See if it works. As I used the syntax given in the triggers to record audit trail above and it works fine.
    Kiran

    Published by: chubby Kiran June 11, 2011 04:08

    Published by: chubby Kiran June 11, 2011 04:09

  • The MGP Apply mode / 'write' for the selected users?

    Is there a work around to implement the mode of MGP Apply / 'write' for the selected users? The reason is that we have registered who transact only the request online. In this case, they don't need to synchronize. Manually change the ALL_CLIENT$ CAN. OUTQUEUE_DIRTY to ' has only a temporary effect and would normally return to 'Y' after a user made another transaction online. Please advice.

    If you have users who just order updates, then why do need to be put in place in the mobile app? they still appear in synchronization history? If this isn't the case, then I suggest that you just drop them from the mobile server because they have no need for the application lite oracle, just access to the server application.

    Regarding updates to direct data to the tables of mobile repository then (although not recommended), normally they don't cause problems, but would bypass in some cases associated with the transformation.

    If you change the param_value in c$ all_subscription_parameters, then the new setting of subsetting to take effect. However, if you do the same action via mobile manager, it also triggers a reset (if used) customer zero, assignment of new values in sequence and re-evaluation of the list of items of publication associated with c$ all_client_items - these products of two change would be lost if you just update the data in the table

  • Calculation of the sum of a column on a XML editor RTF with NULL values

    Hello

    I have a problem to get the sum of a column in XML editor RTF, if one of the lines has a null value.

    say, I have 4 columns and values

    CASES1:
    NULL, NULL, 4, NULL
    Sum, I expect is: 4

    CASE2:
    NULL, NULL, NULL, NULL
    I'm waiting for is a null

    Is there a way to do this?

    Thank you
    Anita

    Try this

    AMT's column

  • Is there an alternative way to compute the sum of a column without accessor view

    Hi Experts,

    JDev 12 c,

    I have a column A and I'm total calculation of column A with the same VO as a view accessor. And calculating as below

    EmployeeViewAccessor.sum ("ColumnA").

    But this way, it loads the VO 2 times as it loads the accessor aswell.

    So is there an alternative way to calculate the sum of a column.

    Thank you

    Roy

    Use the analytical function, please see below Ex

    http://docs.Oracle.com/CD/B19306_01/server.102/b14200/functions163.htm

  • query for the sum error

    Hello

    SELECT SUM (coalesce (cast (b.co1000000351 AS INT), 0)) + sum (coalesce (CAST (b.co1000000352 as INT), 0)) + sum (coalesce (CAST (b.co1000000353 as INT), 0)) as a result
    of B2601 b, T2601 t
    where b.C1 = t.C1 AND t.C1000000161 = 'PR00003525614'
    B.c1 group


    In the above query, I get the result successfully:

    Result
    ------
    100
    300
    400

    I want to do is the sum of the sum of the values from the query and result either 800 above = 100 + 300 + 400

    I tried, but my request is in error:

    SELECT SUM)
    SELECT SUM (coalesce (cast (b.co1000000351 AS INT), 0)) + sum (coalesce (CAST (b.co1000000352 as INT), 0)) + sum (coalesce (CAST (b.co1000000353 as INT), 0)) as a result
    of B2601 b, T2601 t
    where b.C1 = t.C1 AND t.C1000000161 = 'PR00003525614'
    B.c1 group
    )
    Double;            -In error


    Any help please.

    Remove the GROUP BY and try

    Select sum (coalesce (cast (b.co1000000351 as int), 0)) +.

    sum (coalesce (cast (b.co1000000352 as int), 0)) +.

    sum (coalesce (cast (b.co1000000353 as int), 0)) as a result

    of b2601 b

    t2601 t

    where b.c1 = t.c1

    and t.c1000000161 = 'PR00003525614. '

  • How to get the last row and the sum of all columns in a query

    Hello

    is there a way to get the last record for a column and the sum of all the Archives to another column in the same query.

    Best regards

    You must set your needs correctly volunteers to help here...

    Your data are not good enough to bring you a precise solution. Purpose, you do not have a column, which draws a distinction between the first and the last entry.

    The solution becomes easy based on your design.

    I introduced a grouping called 'id' column and a time column called 'time_of_insert' (only this way you can say with confidence that you can differentiate between the first and last (also a foolproof solution) - you can possibly use sequence (instead of date but if you say that you can insert two lines at the same time) ((and then likely sequence would be a better choice to differentiate instead of a timestamp field) etc...)

    With your sample data, something like this can be done to get the desired results.

    -----------------------------------------------------------------------------------------------------------------------

    WITH dataset AS

    (SELECT 1 id, 10 used, 8 remain, systimestamp + 1/24 time_of_insert FROM DUAL

    UNION ALL

    SELECT the 1 id, 1, 7, systimestamp + 2/24 FROM DUAL

    UNION ALL

    SELECT the id 1, 2, 5, systimestamp + 3/24 FROM DUAL

    UNION ALL

    SELECT 1 id, 1, 0, systimestamp + 4/24 FROM DUAL

    UNION ALL

    SELECT 1 id, 0, 0, systimestamp + 5/24 FROM DUAL

    UNION ALL

    SELECT the 1 id, 1, 4, systimestamp + 6/24 FROM DUAL)

    SELECT *.

    (SELECT SUM (used) ON sum_all)

    FIRST_VALUE (stay)

    COURSES (PARTITION BY id ORDER BY time_of_insert DESC)

    last_row

    Of THE dataset)

    WHERE ROWNUM = 1;

    Output:

    ------------------------

    SUM_ALL LAST_ROW

    ------------------------------

    15                  4

    See you soon,.

    Manik.

  • for the sum

    Hello

    I'm having a problem trying to the sum of 200 items I've read in a loop for, for then to get the average value. the value that I'm reading is a temeperature, but is oscilates and I need to get an average value for the pid controller don't get 'confused' by the waves.

    can someone help me please?

    Try something like that. I can't test it here, because I don't have the equipment.

  • HP PAVILION MINI 300-010 in: query about support for the Samsung 950 m2 Pro nVme mini SSD HP Pavilion 300-010 in

    Hello

    Can someone let me know if "mini HP 300-010 in" with card mother COLTI will support a 950 Pro NVME SSD Samsung, on his Socket 3, with 4 x 4 PCIe bus support? Well if helped have on it.

    Hello @asanyal,

    Welcome to the Forums of HP Support! It's a good place to find the help you need, so many other users, the HP experts and other members of the support staff.

    I stumbled upon your post on the SSD question and wanted to help!

    Here are the specifications of the product for the SSD 950 PRO:

    Form factor - M.2

    Here are the Specifications of the product for your office:

    Expansion Slots - M.2 a female connector, 1, 3

    From the information above, the SSD should be compatible.  However, keep in mind that it is intended for the high-end PC.  Then you can consider increasing the memory to improve performance.

    Please let me know if this information helps you solve the problem by marking this message as 'accept as Solution' , this will help others easily find the information they seek.  In addition, by clicking on the Thumbs up below is a great way to say thank you!

    Have a great day!

  • Short and simple question - automatic update for the most part

    Hello

    I just inherited three installations of Essentials. Is anyway to get ESXi hosts updated automatically as if it was possible with the Update Manager and the other versions of vSphere?

    See you soon

    AWo

    Because of the limited edition of Essentials functions, I'm afraid you'll have to patch update / hosts interactively. Same Update Manager is perhaps not very useful, because Essentials does not support the vMotion/DRS, and should not be any power on VM on the host to remedy. You will also need to find a workaround for the ESXi host on which vCenter Server runs, except the server instances vCenter for each Kit are run on hosts of the other Kit.

    André

  • Simple question about synonyms for the keyword

    I've never used synonyms of the keyword until tonight, and LR4 help isn't much help. It shows you how to add a synonym, but it doesn't tell you how to use a synonym.

    I have a keyword called "railway bridges". I have change the key word to include the synonym RRBridge and then save the new definition of the keyword.

    Then, I expected to be able to enter the synonym RRBridge in the keywords Panel and recognized him and assign the keyword "Railway bridges" in this photo.

    Did not work. Nuh - uh. Created a new RRBridge, distinct and different keyword from the keyword "railway bridges". That is not what I wanted, and is not what I expected.

    So, exactly how do you use synonyms for the keyword?

    They are not really for entering data, as you found, but are applied to the image when you export - see you in the view Will Export in the keywords Panel. They are also available via smart collections and searchable text of the Group Filter tab.

  • Query using SQL for the agenda of the source page does not value populated insert

    Display as: text field
    Type of page element: query SQL
    Value Expression: select sysdate double

    Element of the page is 'UPDATE_DATE '.

    The goal is to 'automatically fill the box' this field with sysdate to the user has to when you complete the form. Problem is that it is automatically generated and I can even see the value when I click on the Sessions, however, when I click on CREATE to insert the row, he returned, "ORA-01400: cannot insert NULL in...» »

    Hello

    Apart from "Type of Source should be the column of database and the Source value must be the name of a column of a table.", you can also use the default: SYSDATE as a PL/SQL Expression

    Greetings,
    Roel
    http://roelhartman.blogspot.com/
    You can reward this response in marking it as useful or Correct ;-)

  • How Oracle called the hidden for the function-based index columns?


    I came across an interesting problem today.  Statistics object for a schema that have been created on the basis of data X have been imported into a 'identical' to the database schema Y.

    The problem is that, on the basis of data X a group of hidden columns associated with index based service (FBIs) were named SYS_NC00182$ to SYS_NC00191$ and on the basis of data Y the same hidden columns were named SYS_NC00183$ to SYS_NC00192$!  The consequence was that statistical column for an FBI data base X have been used for a totally different FBI on the database Y.

    Now, of course, if this was g 11 or 12 c I could just create virtual columns and those of the index.  In this way the names of the columns would be compatible on databases.  However, it is a 10g database, and I do not have this option.

    I am curious to understand how Oracle generates these hidden column names.  I'm also curious if, in 10g, there is a way to identify the name of a column hidden for an FBI that doesn't involve a statement explain plan running on a query that uses all the expressions of the FBI for the table.

    The names of $ SYS_NCnnnnn are based on the internal column id - what is loosely based on the order of creation of the FBI. If you delete a column the column internal ids (after this column), which means the names for the SYS_NCnnnnn$ the change.  An opportunity to explain your results is that a (real) column on the X data table fell, but the column still exists on the database Y.

    If you want to get the link between the current internal name and expression, then you can start with dba_ind_expressions - and create a customized version of the view - e.g @.

    Select c.intcol #, c.name, io.name, idx.name, bo.name, base.name, c.default$, ic.pos #.

    of sys.col$ c, sys.obj$ idx, basis of sys.obj$, sys.icol$ ic.

    sys. User$ io, sys.user$ bo, sys.ind$ I

    where bitand(ic.spare1,1) = 1 / * expression * /.

    and (bitand (students, 1024) = 0) / * not bmji * /.

    and ic.bo # c.obj = #.

    and ic.intcol # c.intcol = #.

    and ic.bo # base.obj = #.

    and io.user # idx.owner = #.

    and bo.user # base.owner = #.

    and ic.obj # idx.obj = #.

    and idx.obj # i.obj = #.

    and however # (1, 2, 3, 4, 6, 7, 9)

    /

    The first two columns in the select ones that I added to the initial view definition.

    Concerning

    Jonathan Lewis

Maybe you are looking for

  • Portege M400: click right button on the pen does not work

    Hello I can't button right-click on the barrel of the pen to work with my new Portege M400 tablet PC. I tried with the option 'Use the stylus buton click-right' in the 'Pen settings' tab 'settings in Tablet and stylus' dialog checked and unchecked, b

  • Half, who wrote the software password Bank (PWDBank)?

    I recently bought a Satellite Pro with the fingerprint reader for password memory.But I can hardly believe that the Pwdbank software appears unfinished or poorly thought out. My main complaints: -.1. when I go on the Internet banking site I don't wan

  • From an application of dialogue

    Hello I have an application of litte, who start a listener for incoming short messages. The user must be notified with a user interface dialog box. So I tried to use these KB article: http://www.BlackBerry.com/knowledgecenterpublic/livelink.exe/fetch

  • Intel wifi adopter problem.

    I have hp dv6t - 6b 00 laptop. the with my laptop is that it is not save all new networks WiFi connects to them, how to fix this. ?

  • Support for files Camera Raw by PS Elements

    J'utiise since lot of' years PS Elements 6 on my computer (under Windows 10) pour process my photos. Just normal elsewhere to acquire a Fujifilm X 30. Playback of raw files from this camera requires the installation of a plug in Camera Raw version 8.