Sanshine
Sanshine

Reputation: 615

SQL query for filtering data

I`m working on some sql queries to get some data out of a table; I have made 2 queries for the same data but both give another result. The 2 queries are:

SELECT Samples.Sample,
       data_overview.Sample_Name,
       data_overview.Sample_Group,
       data_overview.NorTum,
       data_overview.Sample_Plate,
       data_overview.Sentrix_ID,
       data_overview.Sentrix_Position,
       data_overview.HybNR,
       data_overview.Pool_ID
FROM tissue INNER JOIN (
                            ( patient INNER JOIN data_overview
                                ON patient.Sample = data_overview.Sample)
                        INNER JOIN Samples ON
                          (data_overview.Sample_id = Samples.Sample_id) AND
                          (patient.Sample = Samples.Sample)
                        ) ON
                        (tissue.Sample_Name = data_overview.Sample_Name)  AND 
                        (tissue.Sample_Name = patient.Sample_Name)
     WHERE data_overview.Sentrix_ID= 1416198
          OR data_overview.Pool_ID='GS0005701-OPA'
          OR data_overview.Pool_ID='GS0005702-OPA'
          OR data_overview.Pool_ID='GS0005703-OPA'
          OR data_overview.Pool_ID='GS0005704-OPA'
          OR data_overview.Sentrix_ID= 1280307
     ORDER BY Samples.Sample;")

And the other is

SELECT Samples.Sample,
       data_overview.Sample_Name,
       data_overview.Sample_Group,
       data_overview.NorTum,
       data_overview.Sample_Plate,
       data_overview.Sentrix_ID,
       data_overview.Sentrix_Position,
       data_overview.HybNR,
       data_overview.Pool_ID
FROM tissue INNER JOIN 
                      (
                         (patient INNER JOIN data_overview 
                               ON patient.Sample = data_overview.Sample)
                          INNER JOIN Samples ON
                              (data_overview.Sample_id = Samples.Sample_id)
                              AND (patient.Sample = Samples.Sample)) ON
                              (tissue.Sample_Name = data_overview.Sample_Name)
                          AND (tissue.Sample_Name = patient.Sample_Name)
          WHERE ((
                    (data_overview.Sentrix_ID)=1280307)
                AND (
                     (data_overview.Pool_ID)="GS0005701-OPA"
                     OR (data_overview.Pool_ID)="GS0005702-OPA"
                     OR (data_overview.Pool_ID)="GS0005703-OPA" 
                     OR (data_overview.Pool_ID)="GS0005704-OPA"))
                     OR (((data_overview.Sentrix_ID)=1416198))
ORDER BY data_overview.Sample;

The one in the top is working quite well but it still won't filter the sentrix_ID. The second 1 is created with Access but when I try to run this Query in R it gave a unexpected symbol error. So if anyone knows how to create a query that filter POOL_ID and Sentrix_id with the given parameters thanks in advance

Upvotes: 4

Views: 826

Answers (2)

wildplasser
wildplasser

Reputation: 44250

Maybe you meant:

 ...
 WHERE data_overview.Sentrix_ID IN (1280307,1416198 )
   AND data_overview.Pool_ID IN ("GS0005701-OPA", "GS0005702-OPA", "GS0005703-OPA" ,"GS0005704-OPA")
   ;                  

Upvotes: 1

Sean
Sean

Reputation: 15182

Is it a case of making the where clause something like this:

 WHERE Sentrix_ID = 1280307 AND (Pool_ID = 'VAL1' OR Pool_ID = 'VAL2' OR Pool_ID = 'VAL3')

i.e. making sure you have brackets around the "OR" components?

Upvotes: 1

Related Questions