SQL: Comparing count of 2 fields with specific value -


i have 2 tables, 1 (jobs) contains list of jobs , second contains details of records in each job.

jobs             jobid   count              2        b       3          records          jobid   recordid    tobeprocessed   isprocessed           a1          1           1           a2          1           1 b           b1          1           1 b           b2          1           0 b           b3          1           0 

how able create query list jobs have count of tobeprocessed has value of 1 equal count of isprocessed has value of 1? in advance. appreciated.

start calculation of number of items tobeprocessed set 1 or isprocessed set one:

select     jobid ,   sum(case when tobeprocessed=1 1 else 0 end) tobeprocessedisone ,   sum(case when isprocessed=1 1 else 0 end) isprocessedisone records group jobid 

this gives counts, not ones tobeprocessedisone equal isprocessedisone. make sure records 2 same, use either having clause, or nested subquery:

-- having clause select     jobid ,   sum(case when tobeprocessed=1 1 else 0 end) tobeprocessedisone ,   sum(case when isprocessed=1 1 else 0 end) isprocessedisone records group jobid having sum(case when tobeprocessed=1 1 else 0 end)=sum(case when isprocessed=1 1 else 0 end)  -- nested subquery condition select * (     select         jobid     ,   sum(case when tobeprocessed=1 1 else 0 end) tobeprocessedisone     ,   sum(case when isprocessed=1 1 else 0 end) isprocessedisone     records     group jobid ) tobeprocessedisone = isprocessedisone 

note: if tobeprocessed , isprocessed of type not allow values other 0 or one, can replace case statement name of column, example:

select     jobid ,   sum(tobeprocessed) tobeprocessedisone ,   sum(isprocessed) isprocessedisone records group jobid having sum(tobeprocessed)=sum(isprocessedd) 

Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -