SQL : Good Review Exercise (JOIN, USING, COUNT, SUM, ON, WHERE, LEFT...)

Back to school, I'm already stumped on this review question. Its been a while...and I think there have been a few changes to the NATURAL JOIN statements. Any guidance would be appreciated.
the following are abreviated....
T_CUST
custnum c_last curbal slsnum
124...........adams........418.33......3
256...........samuels.....494.44.......6
311...........ford............43.43.........8
T_REP
slsnum s_last totcom
3..............bush........3454
6..............pooch.......434
8..............kooch.......4
Display the number of customers each rep has, along with a total of their balances.
I have this so far but its way off.....
SQL> SELECT slsrnum, c_last, s_last
2 FROM (SELECT slsrnum, c_last, s_last
3 FROM ct_ust OUTER JOIN t_rep
4 USING(slsrnum)
5 ORDER BY slsrnum, c_last);
Thanks for the time, its a simple query, but i'm stuck....!!>>!>

If you want that in ANSI syntax, it would br:
SELECT r.slsnum AS "Rep #", COUNT(*) AS "# of Cust",
       SUM(curbal) AS "Total Balances"
FROM t_rep r
     LEFT OUTER JOIN t_cust c ON r.slsnum = c.slsnum
GROUP BY r.slsnum; However, are you sure that you actually need the outer join? Are there really salesmen without customers? If so, how do you want them to show. With the outer join, if I add a salesman without customers:
INSERT INTO T_REP VALUES (4,'smith',0);Then with the outer join I get:
SQL> SELECT r.slsnum AS "Rep #", COUNT(*) AS "# of Cust",
  2         SUM(curbal) AS "Total Balances"
  3  FROM t_rep r
  4       LEFT OUTER JOIN t_cust c ON r.slsnum = c.slsnum
  5  GROUP BY r.slsnum;
     Rep #  # of Cust Total Balances
         3          1         418.33
         4          1
         6          1         494.44
         8          1          43.43Which seems wrong to me. Minimally, you would need to do something more like:
SQL> SELECT r.slsnum AS "Rep #", COUNT(c.custnum) AS "# of Cust",
  2         SUM(curbal) AS "Total Balances"
  3  FROM t_rep r
  4       LEFT OUTER JOIN t_cust c ON r.slsnum = c.slsnum
  5  GROUP BY r.slsnum;
     Rep #  # of Cust Total Balances
         3          1         418.33
         4          0
         6          1         494.44
         8          1          43.43and, if you want 0 for the balance, then I would do:
SELECT r.slsnum AS "Rep #", COUNT(c.custnum) AS "# of Cust",
       NVL(SUM(curbal), 0) AS "Total Balances"
FROM t_rep r
     LEFT OUTER JOIN t_cust c ON r.slsnum = c.slsnum
GROUP BY r.slsnum; Without the outer join, then salesman 4 wouild not appear on the list at all.
But, as I said before, are there really salesmen without customers?
John

Similar Messages

  • Which Book is good for e-commerce using JAVA & XML

    I want to find a Book that is good for e-commerce using JAVA & XML,
    or where can find JAVA & XML new and develop?
    can you suggest me?
    Thanks very much!

    I can recommend "Java and XML" from O'Reilly. It's a very good book.

  • How to use count sql statement?

    i've never used the count function and i'm not sure how to use it to print it onto a html page...my code is below...
    <%
    String tot = (String)session.getAttribute("total");
    int total = Integer.parseInt(tot);
    Class.forName("org.postgresql.Driver");
    // create connection url
    String URL2 = "jdbc:postgresql://dbhost/ug59sxn";
    // pass database parameters to JDBC driver
    Connection Conn2 = DriverManager.getConnection(URL2, "ug59sxn", "hupeswop");
    // query statement
    Statement SQLStatement2 = Conn2.createStatement();
    // generate query
    String Query2 = "SELECT COUNT(*) FROM userteam WHERE total > '"+total+"'";
    // get result code
    ResultSet SQLResult2 = SQLStatement2.executeQuery(Query2);
    int position = (int)SQLResult2 + 1;
    %>
    <TD valign=top>
    <P align=center><FONT size=+1>Welcome <%= session.getAttribute("fName") %> <%= session.getAttribute("surname") %><BR>
    Your Team, <%= session.getAttribute("teamname") %>, are currently lying in position <FONT color=red><% out.println(position) %></font>, with <FONT color=red><%= session.getAttribute("total") %></font> points.<BR>
    </FONT></P>
    <P align=justify>      Use the shorcuts on the left to visit different sections of the game.
    You can change your squad around to prepare for forthcoming games (fixtures can be found in the statistics section),
    transfer a player in to your squad to add some depth or replace injured members, or perhaps browse the statistics section to see how your team is doing in the FFL table.</P>
    <HR>
    <%
    SQLResult2.close();
    SQLStatement2.close();
    Conn2.close();
    %>
    i get the following errors:
    type Exception report
    message Internal Server Error
    description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    An error occured between lines: 62 and 84 in the jsp file: /main2.jsp
    Generated servlet error:
    /home/students/ug/ug59sxn/servlets-local/work/localhost/myapp/main2$jsp.java:80: Invalid cast from java.sql.ResultSet to int.
    int position = (int)SQLResult2 + 1;
    ^
    An error occurred at line: 88 in the jsp file: /main2.jsp
    Generated servlet error:
    /home/students/ug/ug59sxn/servlets-local/work/localhost/myapp/main2$jsp.java:108: Invalid type expression.
    out.println(position)
    ^
    An error occurred at line: 88 in the jsp file: /main2.jsp
    Generated servlet error:
    /home/students/ug/ug59sxn/servlets-local/work/localhost/myapp/main2$jsp.java:111: Invalid declaration.
    out.write("</font>, with <FONT color=red>");
    ^
    3 errors, 1 warning
    if anyone can help me out, please do so..thanx in advance...

    You cannot cast a ResultSet object (or any other object for that matter) to a primitive (such as an int)
    Replace the following line of code:
    int position = (int)SQLResult2 + 1;with this:
    int position = 0;
    if(SQLResult2.next())
      position = SQLResult2.getInt(1) + 1;
    }Additionally I noticed that you have put single quotes around total in the following line:
    String Query2 = "SELECT COUNT(*) FROM userteam WHERE total > '"+total+"'";Are you sure that the total column in the userteam table is of string type? If not, you don't need the single quotes.

  • T-SQL - Using Column Name in where condition without any references when having multiple tables that are engaged using multiple joins.

    Hi All,
    I am a newbie for T-Sql, I came across a SP where multiple tables are engaged using multiple joins but the where clause contain  a column field without any table reference  and assigned  for an incoming variable,like 
    where 'UserId = @UserId'
    instead -  no table reference like 'a.UserId = @Userid'   ............ Can any please do refer to me any material that clears my mind regarding such issue................... help is appreciated.
    Thank You.

    As suggested above, use table alias with columns for unique referencing and to make the code easier to read.
    BOL example for table aliasing:
    USE AdventureWorks;
    GO
    SELECT S.CustomerID, S.Name AS Store, A.City, SP.Name AS State, CR.Name
    AS CountryRegion
    FROM Sales.Store AS S
    JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
    JOIN Person.Address AS A ON A.AddressID = CA.AddressID
    JOIN Person.StateProvince SP ON
    SP.StateProvinceID = A.StateProvinceID
    JOIN Person.CountryRegion CR ON
    CR.CountryRegionCode = SP.CountryRegionCode
    ORDER BY S.CustomerID ;
    GO
    GO
    LINK:
    http://technet.microsoft.com/en-us/library/ms124824(v=sql.100).aspx
    Check the use of TABLE ALIASes and COLUMN ALIASes in the following blog:
    http://www.sqlusa.com/bestpractices2005/organizationtree/
    Without the use of aliases the code would become unreadable.
    Kalman Toth Database & OLAP Architect
    Free T-SQL Scripts
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

  • Is the ipod shuffle or nano good for exercise if you just use the clip on the unit, and connect to your shorts?  if so, does it feel like it's too loose, might fall off?

    is the ipod shuffle or nano good for exercise if you just use the clip on the unit, and connect to your shorts?  if so, does it feel like it's too loose, might fall off?

    I often use my shuffle while exercising, cleaning, and just generally going about my day. Never once has it come unclipped exept for when I got the earbud cord caught on something and got said earbuds yanked out of my ears. I have permanently solved that problem by simply running the cord under my shirt. Works like a charm! I can't answer you about the nano, though I'd say it has a higher likelihood of coming off as it is a bit heavier.

  • SQL - JOIN using UNION ?? UNION using JOIN ?? with example!

    I was asked this question during one of my interviews. Can you do JOIN using UNION keyword? Can you do UNION using JOIN keyword?
    That is -
    1. I should get same output as JOIN without using JOIN keyword, but using UNION Keyword?
    2. I should get same output as UNION without using UNION keyword, but using JOIN Keyword?
    Can you give me an example of how to do this if possible?

    Hi,
    Welcome to the forum!
    user13067794 wrote:
    I was asked this question during one of my interviews. Can you do JOIN using UNION keyword? Can you do UNION using JOIN keyword?The correct answer to those questions is: Why would you want to? All versions of Oracle (and probably any other database product) provide JOIN to do certain things and UNION to do other things. Why not use those features the way they were designed to be used? Even if it is possible to do what you ask, it's going to be more complicated and less efficient.
    If you really must:
    That is -
    1. I should get same output as JOIN without using JOIN keyword, but using UNION Keyword? You can select the relevant columns from each table, and NULLs for all the columns from other tables, in a UNION query. Then you can use GROUP BY or analytic functions to combine data from different rows. For example, this JOIN:
    SELECT     d.dname
    ,     e.mgr
    FROM     scott.dept     d
    JOIN     scott.emp     e  ON     d.deptno  = e.deptno
    ;could be written using UNION, but no JOIN, like this:
    WITH     union_data     AS
         SELECT     deptno
         ,     dname
         ,     NULL     AS empno
         ,     NULL     AS mgr
         FROM     scott.dept
        UNION ALL
         SELECT     deptno
         ,     NULL     AS dname
         ,     empno
         ,     mgr
         FROM     scott.emp
    ,     quasi_join     AS
         SELECT     MAX (dname) OVER (PARTITION BY deptno)     AS dname
         ,     mgr
         ,     empno
         FROM     union_data
    SELECT     dname
    ,     mgr
    FROM     quasi_join
    WHERE     empno     IS NOT NULL
    ;Depending on your tables and your requirements, you might be able to do something a little simpler.
    2. I should get same output as UNION without using UNION keyword, but using JOIN Keyword?A FULL OUTER JOIN is similar to UNION.
    This UNION query:
    SELECT     dname          AS txt
    FROM     scott.dept
    UNION
    SELECT     TO_CHAR (mgr)     AS txt
    FROM     scott.emp
    ;Can be written like this, using JOIN but no UNION:
    SELECT DISTINCT
         NVL2 ( e.empno
              , TO_CHAR (e.mgr)
              , d.dname
              )          AS txt
    FROM          scott.dept     d
    FULL OUTER JOIN     scott.emp     e  ON       1 = 2
    user13067794 wrote:I too don't any example as such, but I am thinking on this line -
    Select a.x, b.y
    from a,b
    where a.key=b.key and sal<5000
    UNION
    Select a.x, b.y
    From a,b
    Where a.key=b.key and sal>7000
    can we get same result using JOIN?That's a very special case. You can get the same results without using UNION like this:
    Select distinct
         a.x
    ,      b.y
    from      a
    ,     b
    where      a.key     = b.key
    and      (        sal < 5000
         OR     sal > 7000
    Can we do something similar using UNION without using JOIN keyword??What you posted does not use the JOIN keyword.
    To get the same results without using a join (either with or without the JOIN keyword), you can use UNION together with aggregate or analytic functions, as I showed earlier.
    Edited by: Frank Kulash on Jul 5, 2011 9:01 PM

  • ANSI SQL 92 SYNTAX OUTER JOIN PERFORMANCE ISSUE

    Good Morning
    Could anyone explain why the excution time for these two (ment to be identical)
    queries run so differently.
    oracle syntax execution time 1.06 seconds
    select COUNT(*) from
    PL_EVENT_VIEW pev,
    PL_EVENT_STAFF_VIEW pesv
    WHERE pev.EVENT_ID=PESV.EVENT_ID(+)
    AND pev.WEEKS=PESV.WEEK_NUM(+)
    AND pev.event_id=2520
    ansi sql 92 syntax execution time 7.05 seconds
    select COUNT(*) from
    PL_EVENT_VIEW pev
    LEFT JOIN PL_EVENT_STAFF_VIEW pesv
    ON (pev.EVENT_ID=PESV.EVENT_ID
    AND pev.WEEKS=PESV.WEEK_NUM)
    WHERE pev.event_id=2520
    Thanks
    David Hills

    BTW Oracle outer join operator (+) and ANSI SQL OUTER JOIN syntax are NOT equivalent. Consider following:
    DROP TABLE T1;
    CREATE TABLE T1 (C1 NUMBER);
    DROP TABLE T2;
    CREATE TABLE T2 (C2 NUMBER);
    DROP TABLE T3;
    CREATE TABLE T3 (C3 NUMBER);
    -- Following SELECT works:
    SELECT COUNT(*)
         FROM T1, T2, T3
         WHERE C2 = C1
              AND C3(+) = C1
    COUNT(*)
    0
    -- But:
    SELECT COUNT(*)
         FROM T1, T2, T3
         WHERE C2 = C1
              AND C3(+) = C1
              AND C3(+) = C2
    AND C3(+) = C1
    ERROR at line 4:
    ORA-01417: a table may be outer joined to at most one other table
    -- However with ANSI syntax:
    SELECT COUNT(*)
         FROM T1
         JOIN T2 ON (C2 = C1)
         LEFT JOIN T3 ON (C3 = C1 AND C3 = C2)
    COUNT(*)
    0

  • Count / sum function in report problem

    Hi
    In my report i was using this code to output the area code and count the man_suspend records from the Trans_code colum. Like so
    SELECT AUN_CODE,
    COUNT(*) FROM rr_transaction WHERE trans_code = 'MAN_SUSPEND'
    GROUP BY AUN_CODE
    AUN_CODE      COUNT(*)
    201                   1
    202                   1
    204                   3But it wasnt outputing the zeros so i tried using the follwoing statements:
    select aun_code,sum(case when rr_transaction.trans_code = 'MAN_SUSPEND' then 1 else 0 end)
    from rr_transaction
    group by aun_code
    SELECT AUN_CODE,
    count(case when trans_code = 'MAN_SUSPEND' then 1 end)
    FROM rr_transaction
    GROUP BY AUN_CODE
    These two statements do give me the desire output
    of :
    AUN_CODE      COUNT(*)
    200                   0
    201                   1
    202                   1
    204                   3etc
    But when i try using these select statments in my data model in Oracle reports it creates the query box with a broken data link icon and wont let me join it to other queries (the aun_code is the primary key)
    Im abit stumped why it will work the first select statement but not the other two!??

    Much nicer than my paltry attempt.
    select iv2.object_type,nvl(object_count,0) object_count
      from
    SELECT object_type,
                COUNT(object_id) object_count 
      FROM user_objects
    WHERE object_type  in ('TABLE' ,'FUNCTION','INDEX','PACKAGE')
    GROUP BY object_type
    ) iv1
    (select distinct object_type
                  from user_objects) iv2
               where iv2.object_type = iv1.object_type(+)

  • Drag-n-n-drop query joins uses WHERE, not INNER JOIN syntax

    When I highlight a few tables and drag them onto the sql worksheet, it will build a select statement for me and join the tables by their foreign keys.
    That's a nice feature, thanks!
    Three questions. Is it possible to:
    1. get it to use the INNER JOIN and LEFT OUTER JOIN syntax instead of joining the tables in the WHERE clause?
    2. control the table aliases so that it will automatically use the "standard alias" for the table instead of A, B, C, etc.?
    3. get it to not put the schema name into the query?
    Thanks!
    Edited by: David Wendelken on Nov 22, 2008 1:48 PM. Grammar mistake.

    Hi Gopi,
    Your code is Good.
    But try to avoid Inner join with more number of Tables ...because this is a performance issue..
    try to use..
    select (primary key fields mainly,other fields) from LIKP into itab where bolnr in p_bolnr(paramater).
    next try to use for all entries option..
    select (primary key fields mainly,other fields) from VBFA for all entries in itab where (give the condition)....
    simillarly do for the other select ....ok this will try to reduce the performance issue....
    <b><REMOVED BY MODERATOR></b>
    Message was edited by:
            Alvaro Tejada Galindo

  • Natural join , join on & join using

    Hi
    I am preparing for the IZO-051 exams .I am totally confused with the concept of joins when answering questions .
    In the Oracle certification book ..HR schema example of employees and departments is given
    While answering the multiple choice questions it is difficult to to choose answer !!
    I wanted to know if *Join using & join on conditions yield the same result in some cases or
    where there are only 1 common column between two tables * ??
    for eg if the same HR schema is to be taken
    QUES: Which sql statement produce the name ,department name & city of all the employees who earn more than 10,000.
    The correct answer given is the query below ..
    I understand the query delivers the needed result ..
    select first_name ,department_name,city
    from employees e
    join departments d
    using(department_id)
    join locations l
    using(location_id)
    where salary > 10000;
    Also the query below gives the same results but this is not the answer???
    select first_name, department_name,city
    from employees e join departments d on (e.department_id= d.department_id)
    join locations l on (d.location_id=l.location_id)
    where salary>10000;
    ALSO is there any efficiency issues related to the queries??

    Hi,
    VANPERSIE wrote:
    Frank Kulash wrote:
    The only thing you really have to know about them is "Don't use them." >Nobody in the real world does.Dear Frank
    You confuse me
    why you said noboby in the real world use them?Obviously, that was hyperbolic. I haven't asked everyone in the world if they use USING or EXISTS.
    I have seen a lot of code, on this forum and elsewhere, written by a large number of people I honestly think that fewer than 1 in 1000 uses either USING or NATURAL JOIN, and it is always in the context of studying for an exam, like you, or trying something the user saw in a book. I have absolutely never seen any production code that used either.
    please I just want to know whyWhy are they not used? They make assumptions about the relationships between tables based entirely on column names. Those assumptions do often not reflect reality. People are liable to name their columns anything, sometimes with very good reasons, that don't match the assumptions made by USING and NATRUAL JOIN.
    NATURAL JOIN is more obviious. It's common to have auditing columns such as created_date or last_modify_user in several tables. No human being would assume that these columns were designed for joining, but that's exactly what NATURAL JOIN assumes.
    USING has the same problem, to a much lesser degree. If you're using 3 tables, and they all have a column named order_id, you can't use order_id to join only 2 of the tables with USING. Also, it reverses the convention of qualifying columns that are used in multiple tables. Many people regulary qualify columns (e.g. <b>d.</b>deptno); personally, I think it's a great programming practice. When you use ON, then you must qualify column names that occur in multiple tables, but when you use USING then you must not qualify the columns that occur in join conditions, but you must qualify other ambiguous columns. Most people find that very conf<b>using</b>.

  • If CASE Statement can be used just nest to 'WHERE' keyword in sql?

    HI All,
    There are 2 tables,
     dbo.headcount_smart_view & dbo.headcount_user_view,they
    are not joined i.e. there is no join between these 2 tables.
     User is trying to create the access restriction on table
    dbo.headcount_smart_view as below,
    The following case clause is just next to 'WHERE' keyword :
    CASE select distinct dbo.headcount_user_view.role_cd from
    dbo.headcount_user_view where UPPER(dbo.headcount_user_view.cmt_id) = UPPER(@Variable('BOUSER'))
    WHEN 8 THEN dbo.headcount_smart_view.l3_id In (select distinct
    dbo.headcount_user_view.divid from dbo.headcount_user_view
    where UPPER(dbo.headcount_user_view.cmt_id)=UPPER(@Variable('BOUSER')))
    WHEN 9 THEN dbo.headcount_smart_view.l4_id In (select distinct
    dbo.headcount_user_view.divid from dbo.headcount_user_view
    where UPPER(dbo.headcount_user_view.cmt_id)=UPPER(@Variable('BOUSER')))
    ELSE
    dbo.headcount_smart_view.l2_id In (select distinct
    dbo.headcount_user_view.divid from dbo.headcount_user_view
    where UPPER(dbo.headcount_user_view.cmt_id)=UPPER(@Variable('BOUSER')))
    END
    The user is getting 'syntax error', it seems that the value is not getting compared with any column hence getting the error.
    can case statment  be used just next to 'WHERE' keyword in sql? 

    I don't have the entire table query...
    but could u tell me wil the sql given below work ....
    if not, why? and what can be done to make it work ?
    SELECT * FROM Customers 
    where case select  CustomerID from customers 
    when 8 then 'Spock'
    when 9 then 'Yedi'
    else 'Jedi'
    end;
    Nope
    because of wrong syntax
    What the purpose of the case when statement here? I'm not seeing a condition in WHERE. You should use it in a condition like below
    SELECT * FROM Customers
    where case CustomerID
    when 8 then 'Spock'
    when 9 then 'Yedi'
    else 'Jedi'
    end = @SomeParameter
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • In  a SQL query whihc has join, How to reduce Multiple instance of a table

    in a SQL query which has join, How to reduce Multiple instance of a table
    Here is an example: I am using Oracle 9i
    is there a way to reduce no.of Person instances from the following query? or can I optimize this query further?
    TABLES:
    mail_table
    mail_id, from_person_id, to_person_id, cc_person_id, subject, body
    person_table
    person_id, name, email
    QUERY:
    SELECT p_from.name from, p_to.name to, p_cc.name cc, subject
    FROM mail, person p_from, person p_to, person p_cc
    WHERE from_person_id = p_from.person_id
    AND to_person_id = p_to.person_id
    AND cc_person_id = p_cc.person_id
    Thnanks in advance,
    Babu.

    SQL> select * from mail;
            ID          F          T         CC
             1          1          2          3
    SQL> select * from person;
           PID NAME
             1 a
             2 b
             3 c
    --Query with only ne Instance of PERSON Table
    SQL> select m.id,max(decode(m.f,p.pid,p.name)) frm_name,
      2         max(decode(m.t,p.pid,p.name)) to_name,
      3         max(decode(m.cc,p.pid,p.name)) cc_name
      4  from mail m,person p
      5  where m.f = p.pid
      6  or m.t = p.pid
      7  or m.cc = p.pid
      8  group by m.id;
            ID FRM_NAME   TO_NAME    CC_NAME
             1 a          b          c
    --Expalin plan for "One instance" Query
    SQL> explain plan for
      2  select m.id,max(decode(m.f,p.pid,p.name)) frm_name,
      3         max(decode(m.t,p.pid,p.name)) to_name,
      4         max(decode(m.cc,p.pid,p.name)) cc_name
      5  from mail m,person p
      6  where m.f = p.pid
      7  or m.t = p.pid
      8  or m.cc = p.pid
      9  group by m.id;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 902563036
    | Id  | Operation           | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT    |        |     3 |   216 |     7  (15)| 00:00:01 |
    |   1 |  HASH GROUP BY      |        |     3 |   216 |     7  (15)| 00:00:01 |
    |   2 |   NESTED LOOPS      |        |     3 |   216 |     6   (0)| 00:00:01 |
    |   3 |    TABLE ACCESS FULL| MAIL   |     1 |    52 |     3   (0)| 00:00:01 |
    |*  4 |    TABLE ACCESS FULL| PERSON |     3 |    60 |     3   (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    Predicate Information (identified by operation id):
       4 - filter("M"."F"="P"."PID" OR "M"."T"="P"."PID" OR
                  "M"."CC"="P"."PID")
    Note
       - dynamic sampling used for this statement
    --Explain plan for "Normal" query
    SQL> explain plan for
      2  select m.id,pf.name fname,pt.name tname,pcc.name ccname
      3  from mail m,person pf,person pt,person pcc
      4  where m.f = pf.pid
      5  and m.t = pt.pid
      6  and m.cc = pcc.pid;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 4145845855
    | Id  | Operation            | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT     |        |     1 |   112 |    14  (15)| 00:00:01 |
    |*  1 |  HASH JOIN           |        |     1 |   112 |    14  (15)| 00:00:01 |
    |*  2 |   HASH JOIN          |        |     1 |    92 |    10  (10)| 00:00:01 |
    |*  3 |    HASH JOIN         |        |     1 |    72 |     7  (15)| 00:00:01 |
    |   4 |     TABLE ACCESS FULL| MAIL   |     1 |    52 |     3   (0)| 00:00:01 |
    |   5 |     TABLE ACCESS FULL| PERSON |     3 |    60 |     3   (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    |   6 |    TABLE ACCESS FULL | PERSON |     3 |    60 |     3   (0)| 00:00:01 |
    |   7 |   TABLE ACCESS FULL  | PERSON |     3 |    60 |     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - access("M"."CC"="PCC"."PID")
       2 - access("M"."T"="PT"."PID")
       3 - access("M"."F"="PF"."PID")
    PLAN_TABLE_OUTPUT
    Note
       - dynamic sampling used for this statement
    25 rows selected.
    Message was edited by:
            jeneesh
    No indexes created...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to run SQL script file on Linux using Java ?

    Hi,
    I need to execute .sql file using java. I used following approach for this.
    private void runScriptEvent(java.awt.event.ActionEvent evt) {                               
            String sqlOutput = "";
            String sqlPromptLines="";
            String currentFunctionName = "";
            if(con!=null){
                String userName = jTextField4.getText();
                String password = jPasswordField1.getText();
                String databaseName = jTextField3.getText();
                try {
                    String script_location = "";
                    ProcessBuilder processBuilder =null;
                    Process process = null;
                    //File file = new File("C:/ScriptFile");
                    File file = new File("./SQL_Script");
                    //File file = new File("E:\\install\\SQL_Script");
                    if(file.exists()){
                        File [] list_files= file.listFiles(new FileFilter() {
                                        public boolean accept(File f) {
                                        if (f.getName().toLowerCase().endsWith(".sql"))
                                        return true;
                                        return false;
                    int count = 0;
                        for (int i = 0; i<list_files.length;i++){
                            script_location = "@" + list_files.getAbsolutePath();//ORACLE
    //currentFunctionName = list_files[i].getName();
    StringTokenizer st = new StringTokenizer(list_files[i].getName(), ".");
    while(st.hasMoreTokens()) {
    currentFunctionName = st.nextToken();
    String extention= st.nextToken();
    System.out.println("Function Name = "+currentFunctionName + "\t Extention = " + extention);
    processBuilder = new ProcessBuilder("sqlplus",userName+"/"+password+"@"+databaseName, script_location); //ORACLE
    processBuilder.redirectErrorStream(true);
    process = processBuilder.start();
    BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String currentLine = null;
    while ((currentLine = in.readLine()) != null) {
    sqlPromptLines = " "+sqlPromptLines + currentLine +"\n";
    count ++;
    System.out.println(count+" " + currentLine);
    if(currentLine.equalsIgnoreCase("Function created.")){
    sqlOutput = "\n" sqlOutput currentFunctionName + " " currentLine"\n" ;
    break;
    }// end while
    in.close();
    process.destroy();
    }//end for
    }//end if file exists
    } catch (IOException e1) {
    jTextArea1.setText(e1.getMessage());
    System.out.println("Script Done");
    jTextArea1.append(sqlOutput);
    }// end id Connection is not null
    Above code working appropriate on Windows but not on Linux.
    is there any changes needed ?
    Regards,
    Ajay
    Edited by: Ajay Sharma on Nov 21, 2012 6:43 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hi gimbal2,
    about code
    jTextArea1.setText(e1.getMessage());I am using this code so that the user will be prompted with a message rather than stack trace.
    About the issue I am getting on linux i believe its because of following statement.
    processBuilder = new ProcessBuilder("sqlplus",userName+"/"+password+"@"+databaseName, script_location); //ORACLERegards,
    Ajay
    Edited by: Ajay Sharma on Nov 23, 2012 12:05 PM
    Edited by: Ajay Sharma on Nov 23, 2012 12:06 PM

  • How to use counter using PCI 6259

    Hello, users,
    I have a PCI 6259 board and use Labview 7.1.
    I'd like to repetitively count the photon signals at 10ms integration time. I want cumulative counts in every 1 sec (1000ms) (or 1 min (60000ms)) And I want to save counts into txt.file which is open in excel program.
    I am a beginner to use counter using PCI 6259 board.
    1. Could you explain default NI-DAQmx counter terminals, i.e., CTR 0 SRC, CTR 0 GATE, CTR 0 AUX, and CTR 0 OUT?
    2. How do I use them or how can I connect to count TTL pulse using PCI 6259?
    3. As I mention my purpose above, which example is the first step to start working my purpose?
    4. If you know good example, could you tell me about that?
    5. If anyone has labview example which is similar to my aim, could you give me some tips or your examples?
    Any hint, comment or advice would be appreciated.
    Thank you so much for your response.
    Leek2

    I have never used the PCI 6259 but have used counters many times with labview, the coding should be the same independent of the board.  What you want to do is finite buffered edge counting using a internal clock.  The best way to do this is to look at the examples programs and use the express vi to get started, then you can use this code to customize your program exactly as you need.
    To address your questions:
    1. CTR0 means "counter 0" the name of the physical resource sometimes listed at GPCTR0.  Each counter has 4 connections to the outside world:
    source "src"(for counting input TTL signals),
    gate (for synchronizing to external clocks and edges),
    out (for pulse-train out operations)
    and aux (specialty operations such as up/down counting and encoding)
    2.For event counting with internal clocking you will only use the src this is the input from the signal you wish to count (ie PMT discriminator for photon counting).
    3,4,5. Look at the count edge examples, there isn't one that does exactly what you want but I have done this with a 6602 (it has e counters) where I use one set of counters to set up a finite pulse train in your case 1000Hz with 1000 pulses, and another counter to edge count on an external pulse, with the source of this pulse routed from the out of the other counter.  Then you can start the task and read when 1000 samples are in the buffer (about 1 second later).
    Hope this helps,
    Paul
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Left outer join using anyOfAllowingNone

    Hi,
    I'm trying to join two tables (tableA and tableB) with left outer join using anyOfAllowingNone (One to many relationship) and try to fetch the tableB data with some constraint on it.
    But the sql generated out of the expression builder is not a proper left join, it actually forms a inner join, which brings only table A data which satisfies all the condition. Actually I want all of tableA data and for every record from tableA I want the data from TableB which matches the key from tableA to tableB and some condition applied on tableB data.
    I guess I'm doing some thing wrong, I went through the document and sample but still its not getting me the right data.
    Below is my expression builder:
    exp = builder.get("tableA_K").equal(some value);
    exp = exp.and(builder.get("effectiveIn").toChar("MM/dd/yyyy").lessThanEqual(date));
    exp = exp.and(builder.get("effectiveOut").toChar("MM/dd/yyyy").greaterThanEqual(date));
    exp1 = builder.anyOfAllowingNone("tableBCollectionAttribute").get("effectiveIn").toChar("MM/dd/yyyy").lessThanEqual(date);
    exp1 = exp1.and(builder.anyOfAllowingNone("tableBCollectionAttribute").get("effectiveOut").toChar("MM/dd/yyyy").greaterThanEqual(date));
    return exp.and(exp1);
    Below is the sample query generated:
    select distinct tableA.all data
    where (((((tableA.key = 2219785)
    and (to_char(tableA.EFFECTIVE_IN_S, 'MM/dd/yyyy') <= '03/27/2008'))
    and (to_char(tableA.EFFECTIVE_OUT_S, 'MM/dd/yyyy') >= '03/27/2008'))
    and ((to_char(tableB.EFFECTIVE_IN_S, 'MM/dd/yyyy') <= '03/27/2008')
    and (to_char(tableB.EFFECTIVE_OUT_S, 'MM/dd/yyyy') >= '03/27/2008')))
    and (tableB.key (+) = tableA.tableB_Key))
    Any help is appreciated. Thanks
    Sai.

    hi Mansi,
    this is how i populate
    SELECT VGBEL LFIMG POSNR VBELN FROM LIPS INTO  TABLE IT_delv  FOR ALL ENTRIES IN IT_VBAP WHERE VGBEL = IT_VBAP-VBELN.
    LOOP AT IT_delv INTO WA_delv.
    WA_FINAL-VBELN_1 = WA_DELV-VBELN_1.
    WA_FINAL-LFDAT =   WA_DELV-LFDAT.
    WA_FINAL-LFIMG   = WA_DELV-LFIMG.
    WA_FINAL-POSNR2 =   WA_DELV-POSNR2..
    APPEND WA_FINAL TO IT_FINAL.
    CLEAR: WA_FINAL , WA_delv.
    ENDLOOP.
    LOOP AT IT_FINAL INTO WA_FINAL.
    READ TABLE IT_vbap INTO WA_vbap WITH KEY VGBEL = WA_FINAL-VBELN.
      WA_FINAL-VBELN = WA_VBAP-VBELN.
    WA_FINAL-MATNR = WA_VBAP-MATNR.
    WA_FINAL-KWMENG = WA_VBAP-KWMENG.
    WA_FINAL-NETWR = WA_VBAP-NETWR.
    MODIFY IT_FINAL FROM WA_FINAL.
    ENDLOOP.
    My question is , it_vbap has 5 five records A,B,C,D,E.
    in it_delv ,there are 20 record corrresponding to A,B,D of IT_VBAP.
    in final table i wont get info of recors B,E. I want those info also in final table ..how can i do that...

Maybe you are looking for