SELECT * FROM table WHERE id NOT IN?  Help with statement.

Hi,
Two tables. Orders (orderID = PK) and Paid Orders (orderID =
FK)
I want to display a recordset of orders from the Orders table
where the
order ID doesn't appear in the Paid Orders table.
I have tried something like this:
SELECT *
FROM dbo.tblOrders
WHERE orderID NOT IN ( SELECT TOP 100 PERCENT
tblPaidOrders.orderID FROM
dbo.tblPaidOrders )
...no joy with that though. Would appreciate some guidance.
Thank you.
Regards
Nath.

Hi Nancy,
Before I begin that, can I ask if there is an issue with the
OR?
I need it to be:
(orderID IN (SELECT qryPaidOrders.orderID FROM qryPaidOrders)
ORDER BY
orderdate ASC) AND ((customerid = MMColParam1) OR (vanopID =
MMColParam2))
MMColParam1 is exactly the same as MMColParam but, for some
reason
unbeknowns to me, DW8.0.2 won't allow me to use it twice.
That's neither
here nor there though, as creating a 2nd variable
(MMColParam2) solves that
particular issue.
Do I need additional ( ) anywhere considering it is an OR
though?
Thanks.
nath.
"Nancy *Adobe Community Expert*" <[email protected]>
wrote in message
news:[email protected]...
>I would think so .. now that you have the core statement
working .. try
>adding the other portions. Put the main statement in ( )
and add the
>others. Like this:
>
> SELECT *
> FROM dbo.qryOrders
> WHERE (orderID IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
> ORDER BY orderdate ASC) AND (customerid = MMColParam1)
AND (vanopID =
> MMColParam2)
>
> See what that gives you and fiddle with those till you
get what you want.
>
>
> --
> Nancy Gill
> Adobe Community Expert
> BLOG:
http://www.dmxwishes.com/blog.asp
> Author: Dreamweaver 8 e-book for the DMX Zone
> Co-Author: Dreamweaver MX: Instant Troubleshooter
(August, 2003)
> Technical Editor: DMX 2004: The Complete Reference, DMX
2004: A
> Beginner's
> Guide, Mastering Macromedia Contribute
> Technical Reviewer: Dynamic Dreamweaver MX/DMX: Advanced
PHP Web
> Development
>
>
>
>
> "tradmusic.com" <[email protected]> wrote
in message
> news:[email protected]...
>> Hi,
>>
>> After a bit of twiddling, I changed the statement to
this:
>>
>> SELECT *
>> FROM dbo.qryOrders
>> WHERE orderID IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
>> ORDER BY orderdate ASC
>>
>> ...and it displays only those records who appear in
the Paid Orders
>> table. If I change this to NOT IN, it displays only
the orders in the
>> Orders table.
>>
>> Ideal, but I need to apply the customerID and
vanopID variables....is
>> that possible within this one statement?
>>
>> Really appreciate the help,
>> Regards
>> Nath.
>>
>> "Nancy *Adobe Community Expert*"
<[email protected]> wrote in message
>> news:[email protected]...
>>> You've added to it since the first post. Take
out the customerID and
>>> vanopID parts and try focusing on just the
orderID part. Get that
>>> working first.
>>>
>>> I would try seeing if you can select those
orderID's that are IN the
>>> subquery first .. that would see whether or not
the problem is the NOT
>>> .. which should work .. but let's see first
whether the culprit is the
>>> query structure or not. See if you can select
the orderID's that are in
>>> the paid orders table from the main query.
>>>
>>>
>>> --
>>> Nancy Gill
>>> Adobe Community Expert
>>> BLOG:
http://www.dmxwishes.com/blog.asp
>>> Author: Dreamweaver 8 e-book for the DMX Zone
>>> Co-Author: Dreamweaver MX: Instant
Troubleshooter (August, 2003)
>>> Technical Editor: DMX 2004: The Complete
Reference, DMX 2004: A
>>> Beginner's
>>> Guide, Mastering Macromedia Contribute
>>> Technical Reviewer: Dynamic Dreamweaver MX/DMX:
Advanced PHP Web
>>> Development
>>>
>>>
>>> "tradmusic.com"
<[email protected]> wrote in message
>>> news:[email protected]...
>>>> Hi Nancy,
>>>>
>>>> Have just tried that, but it is still
displaying records whose orderID
>>>> is also in a record in the Paid Orders
table?
>>>>
>>>> I've got:
>>>>
>>>> SELECT *
>>>> FROM dbo.qryOrders
>>>> WHERE customerID = MMColParam OR vanopID =
MMColParam1 AND orderID NOT
>>>> IN (SELECT qryPaidOrders.orderID FROM
qryPaidOrders)
>>>> ORDER BY orderdate ASC
>>>>
>>>> Hope you can help.
>>>> Thanks. :o)
>>>> Nath.
>>>>
>>>>
>>>> "Nancy *Adobe Community Expert*"
<[email protected]> wrote in message
>>>> news:[email protected]...
>>>>> Why couldn't your inner query just be
SELECT orderID from
>>>>> dbo.tblPaidOrders? Wouldn't the top 100%
be all of them?
>>>>>
>>>>>
>>>>> --
>>>>> Nancy Gill
>>>>> Adobe Community Expert
>>>>> BLOG:
http://www.dmxwishes.com/blog.asp
>>>>> Author: Dreamweaver 8 e-book for the DMX
Zone
>>>>> Co-Author: Dreamweaver MX: Instant
Troubleshooter (August, 2003)
>>>>> Technical Editor: DMX 2004: The Complete
Reference, DMX 2004: A
>>>>> Beginner's
>>>>> Guide, Mastering Macromedia Contribute
>>>>> Technical Reviewer: Dynamic Dreamweaver
MX/DMX: Advanced PHP Web
>>>>> Development
>>>>>
>>>>>
>>>>> "tradmusic.com"
<[email protected]> wrote in message
>>>>>
news:[email protected]...
>>>>>> Hi,
>>>>>>
>>>>>> Two tables. Orders (orderID = PK)
and Paid Orders (orderID = FK)
>>>>>> I want to display a recordset of
orders from the Orders table where
>>>>>> the order ID doesn't appear in the
Paid Orders table.
>>>>>>
>>>>>> I have tried something like this:
>>>>>>
>>>>>> SELECT *
>>>>>> FROM dbo.tblOrders
>>>>>> WHERE orderID NOT IN ( SELECT TOP
100 PERCENT tblPaidOrders.orderID
>>>>>> FROM dbo.tblPaidOrders )
>>>>>>
>>>>>> ...no joy with that though. Would
appreciate some guidance. Thank
>>>>>> you.
>>>>>>
>>>>>> Regards
>>>>>> Nath.
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

Similar Messages

  • How do I do SELECT * FROM TABLE WHERE KEY IN ({list})?

    The title says it all really.
    Is there a reasonable performant way to perform the query
    SELECT * FROM TABLE WHERE KEY IN ({list})where {list} is String []?
    I am currently creating a PreparedStatement with a for loop like this   StringBuffer sb = new StringBuffer ("SELECT * FROM TABLE WHERE ID IN (");
      for (int ii=0;ii<keys.length;ii++) {
        sb.append (keys [ii]);
        if (ii != keys.length-1) sb.append (",");
      sb.append (")");but this means that the prepared statement is created each time I call my method and so I'm not sure that the optimizer will find it easy to cope with. Is there a construction that I'm missing along the lines of SELECT * FROM TABLE WHERE KEY = ? where I can create the PreparedStatement once and just call setObject or something on it when the values in {list} change?

    but this means that the prepared statement is created
    each time I call my method and so I'm not sure that
    the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
    You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those.

  • How to achieve that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND n"

    How to achieve the SQL like that "SELECT * FROM table WHERE age BETWEEN 18 AND 23 AND name = 'Will' " with BDB C-API
    The primary key in the primary database is 'age' ,and the secondary key in the secondary index is 'name' ,in a lot of examples ,there are all simple , but how to do that complex one.thx~

    but this means that the prepared statement is created
    each time I call my method and so I'm not sure that
    the optimizer will find it easy to cope with.You are right, the optimizer won't find that easy to deal with (presuming that is even relevant for your driver/database.) But most optimizers won't do anything with statements that change and that is what you are doing.
    You could create several prepared statements which have a common number of bind variables. For example 10 statements with from 1 to 10 bind values. This will work if most of the queries use those.

  • Can I simulate SELECT * FROM TABLE WHERE ROW IN (1111,2222) using SQLJ

    I have a fct like
    public void fct(String inStr) {
    String str = "SELECT * FROM TABLE WHERE ROW IN" + inStr;
    // then I xecute the query using JDBC connection
    But I want to do the same thisn using SQLJ like:
    public void fct(String inStr) {
    #sql [nctx] iter = { SELECT * FROM TABLE WHERE ROW IN :inStr}
    When I run the second version and give a parameter like "(1111,2222)" it gives
    ORA-01722: invalid number error.
    Is there a way to give parameters to in clauses of SQLJ statements.
    Thanks in regard.

    This is a SQLJ FAQ. You can find the FAQ at:
    http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html
    Your question is addressed in the following section:
    http://technet.oracle.com/tech/java/sqlj_jdbc/htdocs/faq.html#variablesizevaluelist
    Note that that section has a typo. The lines:
    ? // populate mynumbers
    #sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),?};
    should read:
    ... // populate mynumbers
    #sql { SELECT * FROM tab WHERE col in (:(a[0]),:(a[1]),...};
    By the way, with the next release SQLJ will support pasting in of dynamic SQL fragments. Then you'll be able to do pretty much what you are trying to accomplish here (albeit with slightly different syntax). Until then you'd have to use the workarounds from the FAQ.

  • Select * from table where rownum 5; no rows returned? why is it so?

    select from table where rownum > 5;*
    no rows returned. why is it so?
    can anyone explain me?

    Hi,
    rownum is pseudo column, and it is based on the sort order.
    For ex, if you want to get the first 5 employees who get the least salary, you use,
    select ename,sal from
        (select ename, sal
         from emp
         order by sal )
        where rownum<=5
    ENAME      SAL                   
    SMITH      800                   
    ALLEN1     890                   
    JAMES      951                   
    TURNER     998                   
    ADAMS      1100Suppose, if you want to use highest salary, you change the order by and not the rownum. So, it becomes,
    select ename,sal from
        (select ename, sal
         from emp
         order by sal desc)
        where rownum<=5
    ENAME      SAL                   
    KING1      5000                  
    FORD       3000                  
    SCOTT      3000                  
    JONES      2975                  
    BLAKE      2850 So, its not the rownum you would want to change, but the order by.
    -Arun

  • Reason behind this query ,SELECT * FROM table WHERE 1 0

    HEllo,
    I would like to know the reason behind using this query ,
    SELECT * FROM <table> WHERE 1 < 0
    before executing the actual SQL query.
    Is there any special reason or the JDBC receiver side is configured like that.
    Is there any option to overcome this process like, can we remove this option or stop using this.
    Why the JDBC adapter basically sending this query on the DB?
    Thanks,
    Soorya,

    Hi,
    if you run this query, you wont be able to see any records of the table.
    SELECT * FROM <table> WHERE 1 < 0
    if you run this query you will see all records
    SELECT * FROM <table> WHERE 0 < 1
    same with SELECT * FROM <table> WHERE 1=1
    So you can check this out that whats happening in your code before executing actual query. just try to co-relate.
    regards
    Aashish Sinha
    PS : reward points if helpful

  • SELECT FROM tab WHERE co varname -PLEASE HELP

    Hi
    I am trying to use a select query where col1 > 3. Instead of 3 i HAVE to use a variable name . Im getting data type mismatch in criteria expression error when i use this code:
    String query ="SELECT * FROM MEMBERS WHERE M_ID > '" + myvar + "' ";
    Please note that i tried using myvar as a String, int and even as a long - all in vain - resulted in same error.
    What am i doing wrong in that piece of code please?
    THANKS LODES
    sabcarina

    ok thanks . like YOU said this worked:
    String query= "SELECT * FROM MEMBERS WHERE M_ID >" + myvar;
    So please i need to LEARN the need for single quotes in the SQL queries:
    What is it used for and why ? i mean i know it is for Strings but why do we need to enclose these varnames in single quotes?
    THANKS A MILLION
    sabcarina

  • Newbie Select * FROM table  where IF Numeric  else  something else

    I have a text on a web page. If one can enter an EMPLOYID ( like 55 ) or
    lastname like 'SMITH'.
    I tried using INSTR and Substr but no avail.
    Select *
    from Atable
    WHERE
    IF SUBSTR(myfield,1,1)="0" OR
    IF SUBSTR(myfield,1,1)="1" OR
    etc.
    EMPID=to_number(myfield)
    ELSE
    Upper(Lastname) like Upper(myfield)
    Suggestions?
    TIA
    Steve

    Yes myfield could be either "55" OR it could be "SMITH"
    Otherwise I would have to have 2 textboxes on the web page.
    One for EmployeeID and one for lastname.
    Thanks.
    Steve

  • Select from table where last character in string is numeric

    Hello,
    I have a table STREETS with a field called ADDRESS. I would like to select all records from streets where the last character in Address is a number.
    Select ADDRESS from STREETS where regexp_like(substr(address, ?,?,), '[0-9]');
    --? means that I don't know what to put in here!
    I'm not sure if substr is the best approach for this, since i only want the last character and the records are of varying lengths.
    Thanks!

    Hi,
    If you want to use regular expressions:
    WHERE     REGEXP_LIKE ( address
                  , '[0-9]$'
                  )You can get the same results, probably more efficiently, without regular expressions:
    WHERE     INSTR ( '0123456789'
               , SUBSTR (address, -1)
               )     > 0

  • Select * from TABLE where Filed like pa_input.

    Hello,
    the following works fine
    select * from ZTABLE INTO wa_myarea WHERE myfield LIKE 'a%'.
    Now I don't want to hard code the selection criteria for myfield, but let the user select one, so I did:
    parameters pa_input type mytype.
    select * from ZTABLE INTO wa_myarea WHERE myfield LIKE pa_input.
    If the user enters now for example a% everything works again fine. But I assume that a user rather would enter a* for a wild card search and that doesn't work. Do I have to manually replace all * in my variable with % before I run the select statement? I hope not... What would be the best way?
    Thanks.

    Moderator message - Please do not ask basic questions - thread locked
    Rob

  • Select from table where field contains the first 3 character

    The value of the field contains leading zeros like 0000000123, 0000001123, 0000011123.
    Now we need to check the table for entries that contains the first three characters excluding the zeros.
    If we are looking for '123' then we should be retrieving 0000000123 and not 0000001123 or 0000011123.
    Is there a way to get that value in SQL statement with only the exact result?
    Thanks.

    P156550 wrote:>
    > We've tried to use LIKE in our SQL statements and filtered it but there are a bunch of data and we want to get the exact row to improve the performance.
    Hello Adjhan,
    Yes, you need not use LIKE.
    You can use CONVERSION EXIT. I see that the length of your data is CHAR10.
    So try to use the code i have suggested & revert back if any doubts.
    @Soumyaprakash:
    If read the original post carefully, the OP has said:
    If we are looking for '123' then we should be retrieving 0000000123 and not 0000001123 or 0000011123.
    So LIKE does not come into the picture.
    Good Luck,
    Suhas

  • Select * from Table where field1 = (select max(field1) from Table2)  counterpart

    Post Author: JuneCruz
    CA Forum: Data Connectivity and SQL
    These is my table  with 3 fields NFstCol, NsndCol, and NtrdCol
    NFstCol NSndCol NTrdCol -
    1      One      12      One      13      One      14      Two      15      Two      16      Two      17      One      28      One      29      One      210    One      311    One      312    One      316    Two      217    Two      218    Two      219    Four    NULL20    Four    NULL21    Four    NULL
    Now I want to display the records all records that have the maximum ntrdcol group by nsndcolso the output should be.          NfstCol     NtrdColOne         10         3         11         3         12         3
    Two          16         2         17         2         18         2
    Four           19        null          20        null          21        null
    Can this be done without using view and command as source for the database.thanks.

    Post Author: JuneCruz
    CA Forum: Data Connectivity and SQL
    Hi Jagan, all;
       Thanks for the reply.  It works.  Now Im grouping again my reports based on status.
        my records would be.
             FstCol              NsndCol             Status
            1                   One              Inactive        2                   One              Active        3                   One              Active
      My  first group would be Status , then by NsndCol
      However my report shows             Active             FstCol    NsndCol             3            One       Inactive             1            One
      but I want only record number 3 having 3 as the max id for One, I just want to ignore about the Status but I need to group my records based on status  also
                 FstCol    NsndCol             3            One
    Thanks,

  • Delete records from tableA which are not in tableB

    Table A contains milions of records which is the best way to delete records from tableA which are not in tableB
    delete from tableA where empno not in (select empno from tableb)
    or
    delete from tableA where empno not exists (select empno from tableb
    where b.empno=a.empno)
    any help

    Hi
    If you can do this, do with this:
    create table tableC
    as select a.*
    from tableA a,
    (select empno from tableA
    minus
    select empno from tableB) b
    where a.empno = b.empno;
    drop table tableA;
    rename table tableC to tableA;
    Ott Karesz
    http://www.trendo-kft.hu

  • Can not select from my own MV. Please help.

    Hello Gurus,
    I have created a MV with following clauses
    CREATE or REPLACE MATERIALIZED VIEW "OWNER_NAME1"."MV_Name1"
    BUILD IMMEDIATE
    USING INDEX
    REFRESH COMPLETE
    AS
    SELECT column1, column2 .... from table1,table2
    where .....
    I have logged in to DB with the 'owner_name1' schema itself which is the owner of the MV.
    But, when I try to select from the above MV. It gives error "Ora-00942 table or view does not exist"
    I can see the same under 'user_objects' view as an object of owner_name1 schema.
    Could you please help me in understanding where I have gone wrong?
    DB - Oracle 9i on unix platform.
    Thanks in advance!
    Abhijit.

    Oh! I missed to mention the exact steps followed by me which created error for me,
    viz.
    1) I have 2 Database and their users as follows
    bq. i) DB1 in local server - 'localUser'
    bq. ii) DB2 in remote server - 'RemoteUser1' and 'RemoteUser2'
    2) 'RemoteUser2' user in DB2 has 'select' privilage on table 'RemoteTable1' of 'RemoteUser1' ( both are remote DB's users ! )
    i.e. select * from RemoteUser1.RemoteTable1; --works okay when logged into RemoteUser2. no synonyms are created hence using schema_name.table_name convention.
    3) Logged in to 'localUser' in DB1.
    4) Created a DB link 'local_to_remote2' in 'localUser' schema ( in DB1) to 'RemoteUser2' schema (in DB2)
    i.e.
    create database link local_to_remote2 connect to RemoteUser2 identified by password using 'connection_string';
    DBLink was created successfully.
    5) I could select from the tables of 'RemoteUser2' using DB Link. (by logging in to 'localUser')
    i.e. select * from RemoteUser1.RemoteTable1@local_to_remote2 ; --- gives me expected output. no issues!
    6) Now, I created below MV in 'localUser' ( no need to tell in 'DB1' )
    the exact syntax I used is as follows,
    CREATE or REPLACE MATERIALIZED VIEW "localUser"."MV_Name1"
    BUILD IMMEDIATE
    USING INDEX
    REFRESH COMPLETE
    AS
    SELECT column1, column2
    From RemoteUser1.RemoteTable1@local_to_remote2
    where condition1
    and condition2;
    The MV was created successfully, and I could see it as an 'Valid' object of 'localUser' schema.
    i.e. select * from user_objects where object_name ='MV_NAME1' and status ='VALID' --- tells that above create MV is an object of owner 'localUser'
    But, when I try to select from the said MV. it gives me error "Ora-00942 table or view does not exist"
    i.e. select * from MV_Name1; ---- neither this
    select * from localUser.MV_Name1; ---- nor this works :(
    Even when I try to drop the same MV it gives me same error. :(
    Could you please suggest me anything so that I will be able to select from MY OWN MV ?
    Please help Gurus.

  • Select data from table where field is initial

    I have table that has 10 million records.
    I want to select data from this table where certain date field is blank.
    *SELECT * FROM table*
    INTO TABLE internal table
    WHERE PSTNG_DATE = BLANK.
    Does anybody know how to select data from data base table when certain field is blank.
    I cont select all data once and delete which i dont want, the table is big, it will blow up app server.
    thanks in advance,
    Sachin
    Moderator: Pls do not lock the posting instead provide me the link, its disrespecting.

    Respect the forum rules and common sense, and you will be respected.
    "how to select data from a database table when the field is blank" is very basic, and basic questions will be locked, because they have been asked many times and you can find the answer yourself with a little effort. There is nothing disrespectful about it.
    Thread locked.
    Thomas

Maybe you are looking for

  • Report to analyze multiple product cost collectors

    Hi, Is there any report which can be used be analyze more than one product cost collector (material) on actual and target cost and usage, Basically just as KKBC_PKO can be used to analyze a single material at a time Is there anyway to use it for more

  • Not able to start video capture

    Hello, I have a  Motorola Droid Ultra and ever since the android kit-kat update my phone is unable to record videos. Which effects my apps (ex. SnapChat , Instagram , Facebook) from recording.Whenever I try to record it say's "Not able to start video

  • How to add icloud email alias

    I try to follow http://help.apple.com/icloud/#/mm6b1a490a but I get stuck at the very first step. There is no cog icon in the sidebar when I access Mail from icloud.com.

  • BOM in which deletion flag is set then it should not show in CS15.

    Hi Experts, In BOM where deletion flag is set then also when executing CS15 these are shown , How to restrict this , also need to know for more plants at a time, addition of planner group & it's description and Functional location. Pl. guide how to p

  • IPhoto '11 won't automatically startup and import my iphone 4 camera photos

    I bought a new Macbook Pro 2.9 GHz Intel Core i7, and was able to import the pictures from my iphone 4 automaticallyto iPhoto. Now 2 months later, iPhoto won't startup or import any of the photos taken on my phone, but it syncs my music, tones, apps,