Solved

Filtering Table Records from a view

Posted on 2007-11-19
6
173 Views
Last Modified: 2010-08-05
Hello,
I have two tables in a SQL SERVER 2005 View. They look like this:

Table1
product, weight
A ,  5.3
B,   2.9
C,   25.3
D,   32.6

Table2
product, weight
A,  0
B,  0

I am trying to create a view that sorts out rows in Table1 based on Table2. Table2 will always have some products with a weight of 0 (It could be any products in the range). I want to sort out all of the product records in Table1 that have a 0 weight in Table2.

I want the view to look like this:

View1
Product, price
C,   25.3
D,   32.6

I have been trying to do this by joining the tables in a view and just can’t quite get these results…

Does anyone know how to do this??

Thanks!
0
Comment
Question by:Saxitalis
6 Comments
 
LVL 32

Accepted Solution

by:
Daniel Wilson earned 250 total points
ID: 20315706
Create view View1
As
Select T1.Product, T1.Weight
From Table1 T1 Left Join Table2 t2 ON T1.Product = T2.Product And T2.weight = 0
Where T2.Product IS NULL
0
 

Author Comment

by:Saxitalis
ID: 20317111
Thanks for the reply. It works if I only have single records but if it will not work if I am grouping by a subset of records.

I will edit the above example like this:

I have two tables in a SQL SERVER 2005 View. They look like this:

Table1
Sample#, product, weight
1,      A,      5.3
1,      B,      2.9
1,      C,      25.3
1,      D,      32.6
2,      A,      2.3
2,      B,      1.9
2,      C,      53.3
2,      D,      21.6


Table2
Sample#, product, weight
1,      A,       0
1,      B,       0
2,      A,       0
2,      C,       0

I want the view to look like this:

View1
Sample#, Product, price
1,      C,   25.3
1,      D,   32.6
2,      B,   1.9
2,      D,   21.6

Thanks again for your code help but in this case, B gets sorted out from sample 2.  Is there a way to group by sample number so that the products with 0 value weights are only sorted out from the appropriate sample??



Thanks!




0
 
LVL 25

Assisted Solution

by:imitchie
imitchie earned 250 total points
ID: 20317868
Create view myView
As
Select a.Product, a.Weight
From Table1 a Left Join Table2 b ON [a.Sample#] = [b.Sample#] and a.Product = b.Product And b.weight = 0
Where b.Product IS NULL
0
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 
LVL 50

Expert Comment

by:Lowfatspread
ID: 20317883
in general you want to use a keft outer join between the 2 tables so that your main tables doesn't have to have rows on the second which relate to them...

you specify the full join conditions between the tables (ie the foreign key)

select A.*
  from TableA as A
  Left Outer Join
               (select Key
                    from TableB as B
                   Where weight=0
               ) as B
     on A.Key=B.Key


in your current case
create View View1
as Select A.*
        From TableA as A
        Left Outer Join  TableB as B
            on A.[Sample#]  =B.[Sample#]
          and A.product=B.product
          and B.weight=0
     Where B.[Sample#] is null

this assumes that sample# and product are the actual keys for the tables...


0
 
LVL 25

Expert Comment

by:imitchie
ID: 20317973
LOWFATSPREAD.
CAN YOU PLEASE explain how your SQL is going to filter OUT ANY rows from A based on
select A.*
  from TableA as A
  Left Outer Join
               (select Key
                    from TableB as B
                   Where weight=0
               ) as B
     on A.Key=B.Key
??
I'd really appreciate it if you think and test your code before you commit what you may regret
0
 

Author Comment

by:Saxitalis
ID: 20328499
Thanks Daniel and imitchie - that was it!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
if and else in stored procedure 19 42
SQL Encryption question 2 50
Analysis of table use 7 43
Error when saving to sql table a '/' 5 27
by Mark Wills PIVOT is a great facility and solves many an EAV (Entity - Attribute - Value) type transformation where we need the information held as data within a column to become columns in their own right. Now, in some cases that is relatively…
When writing XML code a very difficult part is when we like to remove all the elements or attributes from the XML that have no data. I would like to share a set of recursive MSSQL stored procedures that I have made to remove those elements from …
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now