The mechanics of the WHERE clause

I’ve been out in industry for over 10 years now doing DB work most of that time. Lately I’ve been doing some work that is starting to challenge my long held assumptions about the internal workings of SQL Server, specifically what exactly is happening when
I do joins and where clauses.
I was explaining to someone that when doing a join putting in a where clause limits the amount of records that are available to do the join on thereby making the query faster. My thought was if a table has 100MM records but only 50MM of those meet the WHERE
criteria then the JOIN clause wouldn’t try matching the 50MM records that don’t meet the WHERE clause.
I did some work that afternoon and the empirical results didn’t match the expected outcome of a query I had written in terms of execution time. I don’t think my understanding of what goes on during a JOIN is correct. Can someone educate me?

Here is how a SELECT works in SQL ... at least in theory.  Real products will optimize things, but the code has to produce the same results. 
 a) Effectively materialize the CTEs in the optional WITH clause. CTE's come into existence in the order they are declared so only backward references are
alllowed. A CTE can be recursive. Think of them as VIEWs that exist only in the scope of the query. In practice, if they are used once then they are implemented as an in-line macro.
 b) Start in the FROM clause and build a working table from all of the joins, unions, intersections, and whatever other table constructors are there.  The <table expression> AS <correlation name> option allows you give a name to this working
table which you then have to use for the rest of the containing query.  Ther are UNIONB, INTERSECT and EXCEPT set construtors, LATERAL tables, table-valued funcitosn and all kinds of things happening in here. 
 c) Go to the WHERE clause and remove rows that do not pass criteria; that is, that do not test to TRUE (i.e. reject UNKNOWN and FALSE).  The WHERE clause is applied to the working set in the FROM clause.  
 d) Go to the optional GROUP BY clause, partiton the original table into groups and reduce each grouping to a *single* row, replacing the original working table with the new grouped table. The rows of a grouped table must be only group characteristics:
(1) a grouping column (2) a statistic about the group (i.e. aggregate functions) (3) a function or constant(4) an expression made up of only those three items.  The original table no longer exists and you cannot reference anything in it (this was an error
in early Sybase products).  
 e) Go to the optional HAVING clause and apply it against the grouped working table; if there was no GROUP BY clause, treat the entire table as one group. 
 f) Go to the SELECT clause and construct the expressions in the list. This means that the scalar subqueries, function calls and expressions in the SELECT are done after all the other clauses are done.  The AS operator can also give names to expressions
in the SELECT list.  These new names come into existence all at once, but after the WHERE clause, GROUP BY clause and HAVING clause have been executed; you cannot use them in the SELECT list or the WHERE clause for that reason. 
If there is a SELECT DISTINCT, then redundant duplicate rows are removed.  For purposes of defining a duplicate row, NULLs are treated as matching (just like in the GROUP BY).  
 g) Nested query expressions follow the usual scoping rules you would expect from a block structured language like C, Pascal, Algol, etc.  Namely, the innermost queries can reference columns and tables in the queries in which they are contained.  
 h) The ORDER BY clause is part of a cursor, not a query. The result set is passed to the cursor, which can only see the names in the SELECT clause list, and the sorting is done there.  The ORDER BY clause cannot have expression in it, or references
to other columns because the result set has been converted into a sequential file structure and that is what is being sorted.  
As you can see, things happen "all at once" in SQL, not "from left to right" as they would in a sequential file/procedural language model. In those languages, these two statements produce different results:
  READ (a, b, c) FROM File_X;
  READ (c, a, b) FROM File_X;
while these two statements return the same data:
SELECT a, b, c FROM Table_X;
SELECT c, a, b FROM Table_X;
Think about what a confused mess this statement is in the SQL model.
SELECT f(c2) AS c1, f(c1) AS c2 FROM Foobar;
That is why such nonsense is illegal syntax.
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL

Similar Messages

  • The to_date() error in where clause of proc code

    In a proc code, firstly I use "SELECT to_char(f_date_1, 'DDMONYY') into :char_date FROM TBL_1;" to get the value of f_date_1.
    Then I use "SELECT ID FROM TBL_2 WHERE f_date_2 = :char_date;" to get the value of ID according char_date.
    In table, the type of f_date_1 and f_date_2 is DATE.
    char_date is "char char_date[10]".
    My question is:
    1. If I use WHERE f_date_2 = to_date(:char_date, 'DDMONYY'), it will prompt: "-1861, ORA-01861: literal does not match format string".
    2. If I use WHERE f_date_2 = :char_date, it will work well.
    Since the type of f_date_2 is DATE and the type of char_date is CHAR, why does to_date(:char_date, 'DDMONYY') have problems?
    Thanks.

    I was not able to duplicate the error you got, but I did spot something that may be affecting your results:
    *Set up test table using HR.EMPLOYEES*
    create table TEST_DATE as
    select employee_id, last_name, hire_date
    from employees
    var char_date char(10)
    begin
    select to_char(hire_date,'DDMONYY') into :char_date
    from test_date
    where rownum = 1;
    end;
    *case 1*
    select *
    from test_date
    where hire_date = to_date(:char_date,'DDMONYY')
    *case 2*
    select *
    from test_date
    where hire_date = :char_date --> this assumes a implicit char to date conversionWhile I got case 2 to work, it assumes that the database is configured to recognize the character mask as a valid string format. If you tried running that query on a different database, this query may fail as well.
    To verify why case 1 may not have worked, do a quick check:
    select :char_date from dualIt is possible that you may have applied a different character mask between your first query:
    >
    SELECT to_char(f_date_1, 'DDMONYY') into :char_date FROM TBL_1;
    >
    and the WHERE clause of your second query:
    >
    WHERE f_date_2 = to_date(:char_date, 'DDMONYY')
    >
    RP

  • Force the order in which WHERE clauses are applied?

    I need to make sure that one where clause filtering is applied before the other. How do I do that?
    Several of my where clauses are below.
    I need to make sure than the where clause in bold is applied before several where clauses on the bottom. Otherwise, I get error: division by 0.
    where ...
    and a.surveydate = (select max(surveydate) from survey
    where id = a.id
    and surveydate < b.surveydate
    and b.surveydate between TO_DATE('&lowdate','DD-MON-YYYY')
    and TO_DATE('&highdate','DD-MON-YYYY')
    and (
    ( abs( (b.totvacant/totunits - a.totvacant/totunits) /
    (b.surveydate - a.surveydate) * 365 ) >= 0.00 )
    or ( abs( (b.avgcost/ a.avgcost -1 ) /
    (b.surveydate - a.surveydate) * 365 ) >= 0 )
    or ( abs( (b.free_rent - a.free_rent ) /
    (b.surveydate - a.surveydate) * 365 ) >= 0 )
    Thank you. I know very little about query optimization, but I have a sense that I need to use some kind of SQL hint.

    Why not rewrite the where clause a bit to intercept »ORA-01476: divisor is equal to zero«?:
    SELECT *
      FROM tab
    WHERE a.surveydate =
              (SELECT MAX (surveydate)
                 FROM survey
                WHERE ID = a.ID
                  AND surveydate < b.surveydate
                  AND b.surveydate BETWEEN TO_DATE ('&lowdate', 'DD-MON-YYYY')
                                       AND TO_DATE ('&highdate', 'DD-MON-YYYY')
                  AND (   (ABS ((b.totvacant / totunits - a.totvacant / totunits
                                / NULLIF (b.surveydate - a.surveydate, 0) * 365
                               ) >= 0.00
                       OR (ABS ((b.avgcost / a.avgcost - 1)
                                / NULLIF (b.surveydate - a.surveydate, 0) * 365
                               ) >= 0
                       OR (ABS ((b.free_rent - a.free_rent)
                                / NULLIF (b.surveydate - a.surveydate, 0) * 365
                               ) >= 0
                      ))

  • Will a magnetic phone mount for the CD slot ruin the mechanics of the phone?

    Just got a magnetic phone mount for the CD slot on Amazon and was wondering if the magnet will ruin anything on the phone. There is a single sided metal piece that sticks to the phone case, and the mount itself has the magnet.
    Not sure if prolonged or any usage of this will ruin the phone.

    Sorry, wasn't being clear. It's a mount that goes into the CD player of a car head unit.
    Not sure if the link below works but this is the accessory that I am referring to.
    http://www.amazon.com/gp/product/B00JRGT9OG/ref=s9_simh_gw_p107_d5_i2?pf_rd_m=AT VPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=15P9Q87SXTZMG2AHN706&pf_rd_t=101&pf_rd_p=16 88200382&pf_rd_i=507846

  • When formatting a date field in a where clause the template put dot instead of comma

    Hello to Headstart Workers !
    In a query find block the template construct a where clause, in some cases, and i dont know when the template is formatting a date field putting a dot instead of a comma.
    Ex.: to_date('19-01-2001'.'DD-MM-YYYY')
    Anybody knows why or where the template do this.
    Congratulations
    Nelson

    - We created it using the HS utilities.
    - "nls_numeric_character = ,.".
    - it onky happen when the field date is not the first field in the where clause.
    - i can see the problem just after pressing find button, already in the ls_block in last_query.
    - the find_query works normally but cannot edit any line in ls_block.
    Hope that i had helping
    Regards
    Nelson
    null

  • SQL query optimization by changinf the WHERE clause

    Hi all,
    I need to know about the SQL query performance improvement by changing the WHERE clause. Consider a query :
    select * from student where country ='India' and age = 20
    Say, country = 'India' filters 100000 records and age = 20 filters 2000 records if given one by one. Now can anyone tell if the performance of the query can be changed by changing the query like this :
    select * from student where age = 20 and country ='India'
    as first where clause will give 2000 results and next filter will be applicable on only 2000 rows. While in the former query first where clause would give 100000 rows and seconde filter, hence, would be applicable on 100000 rows???
    Kindly explain.
    Thanks in advance.
    Abhideep

    in general the order of the where condition should not be important. However there are a few exeptions where sometimes it might play a role. Sometimes this is called order of filter conditions. Among others it depends on RBO or CBO used, Oracle Version, Indexes on the columns, statistic information on the table and the columns, CPU statistics in place etc.
    If you want to make this query fast and you know that the age column has much better selectivity then you can simply put an index on the age column. An index on the country column is probably not useful at all, since to little different values are in this column. If you are already in 11g I would suggest to use a composite index on both columns with the more selective in first position.
    Edited by: Sven W. on Nov 17, 2008 2:23 PM
    Edited by: Sven W. on Nov 17, 2008 2:24 PM

  • Delete from remote location with where clause between the two databases

    I want to delete records from a source database using dblink. The criteria for the delete is a where clause, that
    looks for the values between a table at source and the remote location. I get an invalid sql statement error.
    When i do a count(*) instead of a delete, I get rows returned.
    Can anyone see an the problem here ? I've tried qualifying the delete
    delete from tabl1@remote a, tabl1_temp b where (a."id" =b."id") and (a."title" = b."title) and (a."key" = b."key");
    the error I get is ORA 00933 SQL command not properly ended....
    The * is between the 2 ands ...
    Edited by: sgonos on Nov 6, 2009 6:46 AM
    Sorry the * moved when I save it ...
    delete from tabl1@remote a, tabl1_temp b where (a."id" =b."id") and (a."title" = b."title) and (a."key" = b."key");
    it's flagging the middle and ... a.title = b.title ... seems to like key ....
    Edited by: sgonos on Nov 6, 2009 6:51 AM

    You have 2 tables specified in the delete clause of your statement.
    It should maybe be something like:
    delete from tabl1@remote a
    where exists (select 'x' from tabl1_temp b where (a."id" =b."id") and (a."title" = b."title) and (a."key" = b."key"));
    {code}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Parsing an input parameter for the where clause or record select value

    In my limited CR experience, I've always used a command database connection so that I can write my own SQL.  However, now I have to parse a  pipe delimited parameter to get my value for the where clause, so I'm selecting several tables and joining them through the Database Expert Links tab.  All works fine, but after doing that and then parsing the parameter with the below formula in the Select Expert, I notice that there is no where clause in the SQL query, and although the report eventually displays the proper values, it runs through thousands of records first.  Here is my Select Expert - Record formula:
    StringVar array Parm1;
    Parm1 := Split({?DATA_AREA}, "|");
    {SO_ORDERS.CASE_ID} = Parm1[2]
    If I change "Parm1[2]" on the last line to a valid Case ID, then there is a where clause in the SQL and the report generates immediately. 
    It seems like the record select formula is applied AFTER all of the records (without a where clause) are searched when I use the parsed parameter value, but when I hard code a valid value, it places that into the where clause BEFORE the sql is executed.  Is there a way to get the parameter parsed first and then use that parsed value in the SQL where clause?
    Thanks.
    Bill

    Yes crystal will run the query first to get 100% data and then applies record selection condition. To increase the performance you need to pass the where condition at the command level instead of report level. So you need to create a report using add command like this
    select * from tablename where field={?Parameter}
    {?Parameter} is a command level parameter.
    Now insert this report as a subreport in another report which has no connection but has a parameter
    {?DATA_AREA} and create a formula like this in the main report
    Split({?DATA_AREA}, "|")[2]
    Now right click on the subreport and go to change subreport links and add this formula from main report and link this to sub report parameter {?Parameter} without linking any database field from the subreport.
    Now your subreport runs with the where clause to get the data.
    Regards,
    Raghavendra

  • Outer Join with Where Clause in LTS

    HI all,
    I have a requirement like this in ANSI SQL:
    select p1.product_id, p1.product_name, p2.product_group
    from product p1 left outer join product_group p2 on p1.product_id = p2.product_id
    and p2.product_group = 'NEW'
    In Regular SQL:
    select p1.product_id, p1.product_name, p2.product_group
    from product p1, product_group p2
    WHERE p1.product_id *= p2.product_id and p2.product_group = 'NEW'
    In OBIEE, I am using a left outer join between these two in Logical table Source, and also, Gave
    p2.product_group = 'NEW' in WHERE clause of LTS.
    This doesn't seem to solve purpose.
    Do you have any idea how to convert WHERE clause in physical query that OBIEE is generating to something like
    product p1 left outer join product_group p2 on p1.product_id = p2.product_id AND p2.product_group = 'NEW'
    I am using Version 10.1.3.4.1
    Creating an Opaque view would be my last option though.

    Hello
    I have read your post and the responses as well. and I understand that you have issues with the Outer Join with where Clause in LTS.
    Try this solution which worked for me (using your example ) -
    1. In the Physical Layer created a Complex join between PRODUCT and PRODUCT_GROUP tables and use this join relationship :
    PRODUCT.PROD_ID = PRODUCT_GROUP.PROD_ID  AND  PRODUCT_GROUP.GROUP_NAME = 'MECHANICAL' 
    2. In the General Tab of PRODUCT table LTS add PRODUCT_GROUP  table and select Join Type as Left Outer Join.
    3. Check Consistency and make sure there are no errors .
    when you run a request you should see the following query generated -
    select distinct T26908.PROD_ID as c1,
         T26908.PROD_NAME as c2,
         T26912.GROUP_NAME as c3
    from
         PRODUCT T26908 left outer join PRODUCT_GROUP T26912 On T26908.PROD_ID = T26912.PROD_ID and T26912.GROUP_NAME = 'MECHANICAL'
    order by c1, c2, c3
    Hope this works for you. If it does please mark this response as 'Correct' .
    Good Luck.

  • WHERE Clause

    Hi
    I wish to compare date column "HIREDATE" in emp table with Database System date to filter records.
    I am using the below logic in "WHERE" clause , but its giving error : "SYSDATE not a valid function"
    MAP SCOTT.emp, TARGET SCOTT.emp,
    WHERE ( HIREDATE > SYSDATE )
    KEYCOLS (empno) ;
    Is it not vailid to use Oracle Built in Function : SYSDATE in GG where clause ?
    Thanks

    Harry wrote:
    Hi
    I wish to compare date column "HIREDATE" in emp table with Database System date to filter records.
    I am using the below logic in "WHERE" clause , but its giving error : "SYSDATE not a valid function"
    MAP SCOTT.emp, TARGET SCOTT.emp,
    WHERE ( HIREDATE > SYSDATE )
    KEYCOLS (empno) ;
    Is it not vailid to use Oracle Built in Function : SYSDATE in GG where clause ?
    Thanksuse SQLEXEC function to use a query in the MAP statement

  • Function is called in Where clause

    I am analyzing the script and found one function is called within the SQL statement in where clause. I like to know is there any alternate way to improve the performance.
    If I move the function call prior to this select statement and update the result of function value in new column in existing table/ are in new tmp table. Will there be performance improvement
    Or any other better way... Plz suggest me.
    - Mahesh

    You should include the query code as well as the execution plan.
    I figure out you mean your arguments in the where clause are evaluating a function and this prevents the index from being used, provoking a reduced query performance. If this is the case, then you should consider using function based indexes instead.
    ~ Madrid
    http://hrivera99.blogspot.com/

  • Null global variable in block's WHERE clause - no records?

    I'm setting a :GLOBAL.emp_id in certain spots in my form. The EMPLOYEE block's WHERE clause says emp_id = :GLOBAL.emp_id. In the POST-QUERY, it sets that variable back to NULL so the next time they want to run a blind query, it will show all records.
    Well when the :GLOBAL.emp_id is NULL, nothing comes up in a blind query. I even changed the WHERE clause to say emp_id = NVL(:GLOBAL.emp_id,'') but that didn't do anything either.
    How can I get the WHERE clause to (basically) do nothing when that global variable is null? Or should I be messing with DEFAULT_WHERE instead of these global variables
    I'm in 6i

    I'm sorry - I stumbled on something soon after I posted and changed it to:
    emp_id = NVL(:GLOBAL.emp_id,emp_id)
    and it worked - duh

  • Filter not being generated into where clause

    Hi,
    I have a simple mapping that has a source table, a filter, and a target table that is set to DELETE. The source table has many rows, but the filter would narrow down these rows by a lot. When I generate the code, the cursor that gets created SELECTs the whole table then there is an IF statement that is applied to each row with the filter condition. A lot less processing would be required if the filter was implemented as a WHERE clause in the cursor, but I can't get it to generate this way. I realize that deletes automatically generate row-based code but it would still be row-based if the WHERE clause was in the cursor.
    Is there any way to get it to generate the filter as a WHERE clause in the cursor?

    Hi,
    In general, Warehouse Builder gives you a number of different operating modes:
    - set-based: which does everything in (one) SQL statement. This method is most performant, but has some limitations. Warehouse Builder today does not support set-based deletes (arguably, deletes are not the most common operation in a data warehouse).
    - row-based: which is optimal for debugging. In row-based mode, you get as many records as possible and all operations/transformations take place in PL/SQL. This option gives you most debugging capabilities.
    - row-based bulk: which is the previous method fetching rows in bulk (e.g. 100 by 100). Bulk processing speeds up the overall processing.
    - row-based target only: in this mode we push as many of the operations/transformations as possible into the query (cursor). I.e. your filter (in your case) would be implemented as a restriction on the filter.
    - row-based target only in bulk: see previous.
    Warehouse Builder's default operation is set-based fail over to row-based. I.e. because we do not support set-based delete statements, I suspect you fall back to the row-based method of execution, which is not ideal in your case. I suggest you use the row-based target only option in order to get optimal performance for your scenario.
    Note that for the deletes that are common in DW scenarios the row-based bulk deletes that we generate are often faster than set-based deletes. Also note that if you perform a complete delete (or even truncate) followed by an insert that Warehouse Builder does issue one statement for emptying the table.
    Thanks,
    Mark.

  • Ref cursor argument in where clause

    Env: ORCL 9.2
    I have a func that uses the parameters in a where clause and returns a ref cursor as result. That works fine.
    I want to create an overloaded func that replaces one argument with a ref cursor. (instead of accepting a single value as an argument I want to accept multiple values) Can you specify the ref cursor in a where clause with out looping through the cursor ?
    CURRENT
    func(arg1,arg2,arg3) returns ref cursor
    is
    select blah from sometable s
    where s.a = arg1
    and s.b = arg2
    and s.c = arg3
    NEW
    func(ref_cur_arg1,arg2,arg3) returns ref cursor
    is
    select blah from sometable s
    where s.a = ref_cur_arg1
    and s.b = arg2
    and s.c = arg3
    is there something like:
    where s.a in (loop fetch ref_cur_arg1 end loop)
    thx

    Thanks Rich,
    That's pretty much what I came up with:
    FUNCTION f_bond_price_w_bb_stat (
                                  p_id_ref gtyp_instr_id_ref,
                                  p_price_srce bond_price.PRICE_SRCE%type,
                                  p_price_type bond_price.PRICE_TYPE%type,
                                  p_price_date bond_price.PRICE_DATE%type)
    RETURN gtyp_bondprice_w_bb_stat_rfc
    IS
    lv_bondprice_rfc gtyp_bondprice_w_bb_stat_rfc;
    TYPE ARRAY1 IS TABLE OF instr_ext_id_map.ext_id_value%TYPE INDEX BY BINARY_INTEGER;
    t_instr_id ARRAY1;
    instr_ids INSTR_EXT_ID_T := INSTR_EXT_ID_T();
    BEGIN
         --suck the contents of the ref cursor into a local virtual tmp table
    FETCH p_id_ref BULK COLLECT INTO t_instr_id;
    FOR i IN 1..t_instr_id.COUNT LOOP
         instr_ids.extend;
              instr_ids(instr_ids.count) := t_instr_id(i);
    END LOOP;
    CLOSE p_id_ref;
    OPEN lv_bondprice_rfc FOR
    SELECT
    bs.ID_ISIN,
    bs.TICKER,
    bs.CPN,
    bs.MATURITY,
    round(months_between(bs.MATURITY,sysdate)/12,1),
    bs.ISSUER_INDUSTRY,
    bs.INDUSTRY_SECTOR,
    FROM bond_price b,
    instr_ext_id_map ext,
    etl.mdy_ratingstatic mrs,
         etl.mdy_extid mxid,
         etl.bloomberg_static bs
    WHERE b.INSTR_ID = ext.instr_id
    AND bs.ID_ISIN(+) = ext.ext_id_value
    AND bs.ID_ISIN = mxid.EXTIDVALUE(+)
    AND mrs.MOODYDEBTNUM(+) = mxid.MOODYDEBTNUM
    AND ext.ext_id_value in (select * from TABLE (cast (instr_ids AS INSTR_EXT_ID_T) ))
    AND b.PRICE_SRCE = p_price_srce
    AND b.PRICE_TYPE = p_price_type
    AND b.PRICE_DATE = p_price_date
    RETURN lv_bondprice_rfc;
    END f_bond_price_w_bb_stat;

  • Syntax error in WHERE clause

    Hi all,
    see the code.
    data: itab type cdhdr occurs 0,
            wa type cdhdr.
    data: begin of itab1 occurs 0,
             lifnr like lfa1-lifnr,
              ktokk like lfa1-ktokk,
            end of itab1.
    select * from cdhdr into table itab.
    select lifnr ktokk from lfa1 into table itab1
        for all entries in itab
          where lifnr = itab-objectid.
    when i go for Syntax check i am getting Error like  " when using the addition for all entries in itab " the fields  LIFNR and ITAB-OBJECTID  must have the same type and lengh.
    so, i have done the following correction in WHERE clause.
    select lifnr ktokk from lfa1 into table itab1
        for all entries in itab
          where lifnr = itab-objectid(10).
    But this time i am geting warning in German language.
    my correction is correct or not ?
    Pls guide me ..
    Thanks
    Krupali.

    select lifnr ktokk from lfa1 into table itab1
    for all entries in itab
    where lifnr = itab-objectid(10).
    But this time i am geting warning in German language.
    my correction is correct or not ?
    Answer is your correction is not correct.
    we cannot use offset with for all entries.
    you can do this way first take the itab-objectid(10) in some other field like temp than fire for all entries on temp.
    like below.
    select lifnr ktokk from lfa1 into table itab1
    for all entries in itab
    where lifnr = itab-temp."<-- see here
    Amit.
    Edited by: Amit Gujargoud on Aug 26, 2008 8:00 AM

Maybe you are looking for

  • Variable size item:

    Hi Company procures copper sheet of certain thickness with different sizes. Stock keeping dimension is KG. Material master has alternative unit of measure and conversion factor for KG and cubic centimeter. Design department will enter this sheet dime

  • Help!  Can't get my Podcast Image back!

    https://itunes.apple.com/gb/podcast/filmsploitation-film-podcast/id464589769 Image diseapered when they chage dteh sizing.  Using Iweb I have updated the image now twice in teh new format yet still not showing! Any ideas?

  • How to embed password at ePayslip PDF

    Peoplesoft ePay is generate payslip in pdf for Global Payroll. Our company plan to roll up SSO and for security concern would like to embeded password/standard hints anwers at the ePayslip PDF. Just wonder, anybody have idea how to embed different pa

  • AE CS4 - Import problem (JVC Everio clips in 16:9)

    Hi everyone, I hope someone can help me with this because it is driving me crazy I got a  JVC Everio "GZ-MG750" camcorder some months ago and I must say I first had problems with "Export" (JVC to PC) because when you have recorded the clips in 16:9,

  • Mac restarts every time ethernet is re-plugged in

    I live in an ethernet-only dorm. When I take my Air to classes, I use the university's wifi. However, whenever I come home and plug the ethernet cable back into the port, my computer stops in its tracks and restarts. This happens every time without f