How to also show counts that return 0?

Hi,
I'm trying to count the number of users from some given countries. It goes like this:
select country_id,count(*) from user_registry
where user_id IN (307, 317,1472)
and country_id IN (0,2,3)
group by country_idThis is OK, and I get 2 users from country 0, and 1 user from country 2.
The problem is that I also want to get 0 from country 3 instead of nothing..
Is this possible? Thank you!

Something like this? (tested on 10g):
WITH user_registry AS (SELECT 307 user_id, 0 country_id
FROM dual
UNION
SELECT 317, 0
FROM dual
UNION
SELECT 1472, 2
FROM dual
country AS (SELECT 0 country_id
FROM dual
UNION
SELECT 2
FROM dual
UNION
SELECT 3
FROM dual
SELECT cty.country_id, Nvl(ur.count_user, 0)
FROM country cty,
(SELECT ur.country_id, count(*) count_user
FROM user_registry ur
WHERE ur.user_id IN (307, 317, 1472)
AND ur.country_id IN (0, 2, 3)
GROUP BY ur.country_id
) ur
WHERE cty.country_id = ur.country_id(+)
;C.
Formatting seems to be out of order sigh?!

Similar Messages

  • How to create a function that returns multiple rows in table

    Dear all,
    I want to create a funtion that returns multiple rows from the table (ex: gl_balances). I done following:
    -- Create type (successfull)
    Create or replace type tp_gl_balance as Object
    PERIOD_NAME VARCHAR2(15),
    CURRENCY_CODE VARCHAR2(15),
    PERIOD_TYPE VARCHAR2(15),
    PERIOD_YEAR NUMBER(15),
    BEGIN_BALANCE_DR NUMBER,
    BEGIN_BALANCE_CR NUMBER
    -- successfull
    create type tp_tbl_gl_balance as table of tp_gl_balance;
    but i create a function for return some rows from gl_balances, i can't compile it
    create or replace function f_gl_balance(p_period varchar2) return tp_tbl_gl_balance pipelined
    as
    begin
    return
    (select gb.period_name, gb.currency_code, gb.period_type, gb.period_year, gb.begin_balance_dr, gb.begin_balance_cr
    from gl_balances gb
    where gb.period_name = p_period);
    end;
    I also try
    create or replace function f_gl_balance(p_period varchar2) return tp_tbl_gl_balance pipelined
    as
    begin
    select gb.period_name, gb.currency_code, gb.period_type, gb.period_year, gb.begin_balance_dr, gb.begin_balance_cr
    from gl_balances gb
    where gb.period_name = p_period;
    return;
    end;
    Please help me solve this function.
    thanks and best reguard

    hi,
    Use TABLE FUNCTIONS,
    [http://www.oracle-base.com/articles/9i/PipelinedTableFunctions9i.php]
    Regards,
    Danish

  • How to set a value that returns null to O

    Hello, I've an xml field that returns null... I want 0 to replace the null value... how to do it in the formatting.. pls let me know

    Hi priya,
    my template table xml field has CHANGE_PERCENT
    I added the tag here <?xdoxslt:ifelse(CHANGE_PERCENT='',0,CHANGE_PERCENT);''?>
    but it's not working
    By the way i gave it in the template itself..
    Please help me
    Edited by: erp on Nov 18, 2010 10:19 PM

  • How to define a function that returns a void?

    Hi all,
    How can I define a custom function that returns a void?
    My understanding is simple UDF can only return a string.
    Is there any way around this limitation?
    Thanks.
    Ron

    > Hi,
    > User Defined Function in XI always return a String.
    >
    > If you requirement is that you want to perfrom some
    > operation in an user defined function, one option is
    > to move it to the Java Section in your mapping and do
    > it in the intialization / clean up section.
    >
    > Else, wite a UDF that will return a Blank string as
    > the output, and map it to the root node of the
    > target.
    >
    Hi all,
    Thank you all for your kind responses.
    The scenario I have is I need to insert the value of a particular field into a database table. E.g. MessageId, to keep track of the messages going through XI.
    Naturally, such operations return void. These operations are already encapsulated in a custom jar file.
    My purpose of using a UDF is solely to invoke the operation.
    But I realized I each UDF has to have a return type, and the output of this UDF must be mapped to a node in the outgoing message.
    Currently, my UDF returns an empty string, by using the implementation as below, I manage to perform my desired operation without affecting the result:
    MessageId -- UDF -- CONCAT -
    InstitutionCD_Transformed
    InstitutionCode_____
    But as you can see, this is not an elegant way of doing things.
    That's why I'm seeking alternative solutions for this problem.
    Bhavesh, you mentioned something about doing the operation in the initialization/cleanup section.
    Can you please explain more?
    Thanks.
    Ron

  • How to call a routine that returns a pointer using jni

    hi this is ravi kiran,
    i have a situation where i need to call a c-routine from my java program that returns a pointer.
    how can i get the content of the pointer that the routine is returning.
    plz help me
    thanx in advance

    Return it as a java long.
    When you need to use it again then pass it in as a long and cast it to a pointer.
    If you need to free it then you should consider writing a finalize() method (one of the few times it is appropriate) and a destroy() method as well.

  • How to code a method that returns string for class object

    I have a class named Address.
    public class Addresss{   
    private String street;   
    private String city;            // instance variables  
    private String zipcode;}I have been asked to write a method that returns a string for Address object. I dont understand how to create address object.Can anyone pls help me understand.
    do I have to write (for creating object)
    Address addressObject  = new Address(); ( coding method that returns a string for address object) ---> I really dont understand this part.

    looks almost right. The problem is that your method name AddressBookEntry does not match the name of your class AddressBook and therefore is not a constructor.
    Furthermore, you probably need to make a distinction between a single entry into the address book which consists of a single name and a single address, (which is just what you have done) and an address book itself which is probably a list of AddressBookEntries
    So for your code I would change the class that you called "AddressBook" to "AddressBookEntry" and have a third class that represents the collection of AddressBookEntries.
    Now to be honest, I don't know why you keep the name split apart from the street address portion of the address. I would be more inclined to keep the name as a field of the address itself, but it's your code, you carve it up the way you like.

  • How to execute stored procedure that returns a cursor?

    How to execute a stored procedure that returns a cursor?
    Follow the code:
    CREATE OR REPLACE PROCEDURE stp_cashin_grupo
    (p_func IN VARCHAR
    ,p_cod_grup IN Integer
    ,p_des_grup IN VARCHAR
    ,p_logi IN VARCHAR
    ,p_curs_rset OUT infoc.pck_cashin_grupo.curs_rset
    IS
    BEGIN
    if p_func = '1' then
    OPEN p_curs_rset FOR
    select
    cod_grup
    ,des_grup
    ,dat_manu_grup
    ,des_logi_manu
    from infoc.tbl_cashin_grupo
    order by des_grup;
    end if;
    END stp_cashin_grupo;
    and the package:
    CREATE OR REPLACE PACKAGE pck_cashin_grupo
    AS
    TYPE curs_rset IS REF CURSOR;
    END pck_cashin_grupo;
    My question is how to execute in sql plus?
    EXEC stp_cashin_grupo('1',0,'','465990', my doubt is how to pass the cursor as return
    Thanks

    my doubt is how to pass the cursor as returnExample :
    TEST@db102 > var c1 refcursor;
    TEST@db102 > create or replace procedure ref1 (
      2     v1 in varchar2,
      3     cur1 out sys_refcursor)
      4  is
      5  begin
      6     open cur1 for 'select * from '||v1;
      7  end;
      8  /
    Procedure created.
    TEST@db102 > exec ref1('dept',:c1);
    PL/SQL procedure successfully completed.
    TEST@db102 > print c1
        DEPTNO DNAME          LOC
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON
    TEST@db102 >

  • How to execute external scripts that returns error code

    Hi,
    What is the best approach to execute a unix shell scripts in ODI thats return a code e.g. 1- found , 2 - not found. The return code needs to assigned to a ODI variable. I have gone through some posts that explained how to refresh odi variable from file. well in that case i have to write the error code to a file and then read to a ODI variable. Is there any direct approach available ? Is there any other way I can assign values to ODI variable other than its refresh methods ( select from <source>) for e.g. Inside odi procedure ?
    Thanks you all for answering this
    -Mansa

    In order to reduce the steps we need to do that using java itself. It will be something like this .
    Step 1. ODI procedure - Technology Java Bean shell .
    <@
    JAVA OS COMMOND CODE TO TRIGGER THE PEARL SCRIPT.
    GET THE RETURN INTO JAVA VARIABLE ( SAY FOR EX result )
    @>
    Step 2. Creating the variable.
    select any oracle schema
    select '<@=result@>' from dual
    and call this variable in refresh mode in package.
    Step 3. processing with variable what ever you wish to do .
    Personally i have not tried the java os command to get the return code . I will look into this and let you know sooner or later. If you want you can explore the code or google the code and see if what you are planning to achive is possible ,else the other way can be using the file as you know.

  • How to clear "show counter interface ..." counters in IOS 12.1(13)E

    Under IOS 12.1(13)E, one can view the detailed interface counter using the command, for example :
    show counter interface gigabitEthernet 10/7
    It comes up with detailed counters in hexadecimal format. I need to know, if there is way, to clear these counters.
    Thanks,
    Nadeem

    zeus#clear counters ?
    Async Async interface
    BVI Bridge-Group Virtual Interface
    CTunnel CTunnel interface
    Dialer Dialer interface
    FastEthernet FastEthernet IEEE 802.3
    Group-Async Async Group interface
    Line Terminal line
    Loopback Loopback interface
    Multilink Multilink-group interface
    Null Null interface
    Tunnel Tunnel interface
    Vif PGM Multicast Host interface
    Virtual-Template Virtual Template interface
    Virtual-TokenRing Virtual TokenRing
    Lex Lex interface

  • How to make a JDialog that returns a modal result

    I have a JDialog with some input fields. The results of these fields are stored in a model bean. To get the changed model after the dialog will be closed, I must to write a listener of this dialog to listen a window closing event and from this listener get a model. But it would be nicer if I would habe a method showModalDialog that shows me a dialog and returns the changed model as a result. How can I do it?

    why not do what JOptionPane basically does...
    public Object getModalValue()
       Object obj = null;
       JDialog d = new JDialog(..., true);
       d.show();
       if(needed) obj = new Whatever();
       return obj;
    }

  • How to only show data that hasn't passed the current data?

    I have some data in an xml file. I can get it to connect fine to an .html page. My question is how do I only show the data that hasn't passed the current date? Can this be done?

    The following is the XML file
    <?xml version="1.0" encoding="utf-8"?>
    <sports>
         <item>
              <date>2010-03-21</date>
              <opponet>Essendon</opponet>
              <location>MCG</location>
              <time></time>
         </item>
         <item>
              <date>2011-01-11</date>
              <opponet>Collingwood</opponet>
              <location>Etihad</location>
              <time></time>
         </item>
         <item>
              <date>2011-03-04</date>
              <opponet>Carlton</opponet>
              <location>Princes Park</location>
              <time></time>
         </item>
         <item>
              <date>2011-03-08</date>
              <opponet>Sydney</opponet>
              <location>SCG</location>
              <time></time>
         </item>
         <item>
              <date>2011-03-21</date>
              <opponet>Brisbane</opponet>
              <location>Gabba</location>
              <time></time>
         </item>
    </sports>
    The following is the HTML
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script src="SpryAssets/xpath.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <script type="text/javascript">
    function pad(number, length) {
         var str = '' + number;
         while (str.length < length) {
              str = '0' + str;
         return str;
    var dt= new Date()
    var today = dt.getFullYear()
        + '-' + pad(dt.getMonth()+1,2)
        + '-' + pad(dt.getDate(),2);
    var ds1 = new Spry.Data.XMLDataSet("asdf.xml", "sports/item[date > '"+today+"']", {sortOnLoad: "date", sortOrderOnLoad: "ascending", useCache: false});
    alert (today);
    </script>
    </head>
    <body>
    <div spry:region="ds1">
    <table>
        <tr>
          <th spry:sort="date">Date</th>
          <th spry:sort="opponet">Opponet</th>
          <th spry:sort="location">Location</th>
          <th spry:sort="time">Time</th>
        </tr>
        <tr spry:repeat="ds1" spry:odd=".atl" spry:hover=".alt">
          <td>{date}</td>
          <td>{opponet}</td>
          <td>{location}</td>
          <td>{time}</td>
        </tr>
      </table>
    </div>
    </body>
    </html>
    Gramps

  • How to call a sp that returns multi_columns from another sp

    Hi,
    Can anybody help me to solve this problem? I called a sp which
    returns ename, sal using a weak ref cursor from another sp. Is
    it possible to do this? or I did something wrong? The error
    messages are:
    ERROR at line 1:
    ORA-00904: invalid column name
    ORA-06512: at "SCOTT.TESTPKG", line 14
    ORA-06512: at line 1
    below is my code:
    create or replace package testpkg AS           //12/19/01
    TYPE sumCur IS REF CURSOR;
    TYPE estType IS REF CURSOR;
         function totalNo (
              dno IN NUMBER)
              RETURN estType;
         procedure test(
              sum_cv IN OUT NOCOPY sumCur);
    END;
    CREATE OR REPLACE PACKAGE BODY testpkg AS
         function totalNo (
              dno IN NUMBER)
              RETURN estType IS est_cv estType;
              BEGIN
              OPEN est_cv FOR SELECT ename, sal FROM emp
    where deptno = dno and job = 'MANAGER';
              RETURN est_cv;
         END totalno;          
         procedure test(
              sum_cv IN OUT NOCOPY sumCur) AS
              sql_statement VARCHAR2(100);
         BEGIN
              sql_statement :='SELECT dname, totalNo(deptno)
    from dept ';
              OPEN sum_cv FOR sql_statement ;
         END test;     
    END;
    Thanks

    The error that you are getting is because totalNo(deptno) needs
    to be testpkg.totalNo(deptno), but that is not the only error.
    Maybe you can use something like this:
    SQL> CREATE OR REPLACE PACKAGE testpkg
      2  AS
      3    TYPE sumcur       IS         REF CURSOR;
      4    FUNCTION totalno
      5      (dno         IN            NUMBER)
      6      RETURN                     VARCHAR2;
      7    PROCEDURE test
      8      (sum_cv      IN OUT        sumcur);
      9  END testpkg;
    10  /
    Package created.
    SQL> CREATE OR REPLACE PACKAGE BODY testpkg
      2  AS
      3    FUNCTION totalno
      4      (dno         IN            NUMBER)
      5      RETURN                     VARCHAR2
      6    IS
      7      est_cv                     VARCHAR2 (30);
      8    BEGIN
      9      SELECT ename || ' ' || TO_CHAR (sal)
    10      INTO   est_cv
    11      FROM   emp
    12      WHERE  deptno = dno
    13      AND    job = 'MANAGER';
    14      RETURN est_cv;
    15    END totalno;
    16    PROCEDURE test
    17      (sum_cv      IN OUT        sumcur)
    18    AS
    19      sql_statement              VARCHAR2 (100);
    20    BEGIN
    21      sql_statement :=
    22         ' SELECT dname, testpkg.totalno (deptno)'
    23      || ' FROM dept';
    24      OPEN sum_cv FOR sql_statement;
    25    END test;
    26  END testpkg;
    27  /
    Package body created.
    SQL> VARIABLE g_ref REFCURSOR
    SQL> EXEC testpkg.test (:g_ref)
    PL/SQL procedure successfully completed.
    SQL> PRINT g_ref
    DNAME
    TESTPKG.TOTALNO(DEPTNO)
    ACCOUNTING
    CLARK 2450
    RESEARCH
    JONES 2975
    SALES
    BLAKE 2850
    DNAME
    TESTPKG.TOTALNO(DEPTNO)
    OPERATIONS

  • How to handle HTTPS Service that returns XML

    When using Flash + AMF remoting I've always typecast the event.result as XML(event.result).  Typecasting isn't working in Flash Builder, I'm getting an object as the result [object MYXMLROOT] and I can access it's properties, but I can't typecast it as XML, nor can I loop each of it's properties....

    Hi,
    There are ways to use XML returned by Http Service in  flex. Is this what you are looking to achieve?
    http://blog.flexexamples.com/2008/03/29/dynamically-loading-xml-files-using-the-httpservic e-tag/
    The DCD features of Flash Builder 4 can also be used to access the XML as Services.
    Nishad

  • JavaFX : How to call java function that returns hashtable and manipulate

    I have a requirement to {color:#0000ff}create a java object in JavaFX script code{color}. Then call a java function using the created java object. The java function returns hashtable. Then traverse through each element of hashtable. Finally I need to create a similar structure in JavaFX.

    If you need to use a Java class that uses generics you need to take special steps. Since JavaFX does not support generics you need to create a java wrapper to hide the calls that use generics and call the wrapper class from FX.

  • How do i show graphics that are moved off my document page so i can see the

    i am moving graphics off my page onto the "background" so I can move them around and reuse them in my document.
    How / where can i make them viewable as i work - right now they just disappear. I am in creative suite ID 3-
    Thanks

    Sounds like you're in preview mode which hides the pasteboard. With nothing selected, hit the w key.
    Bob

Maybe you are looking for