sql - Two counts in three tables -
i trying count 2 columns using following query:
select distinct [district], count (distinct [student identifier statewide california]) '11-12 enrollment', (select count (distinct incdtkey) [dbo].[disciplinestudentfile1112] grdlvlkey in ('15', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '18', '19')) total_incidents dbo.ssid1112studentenrollmentrecords (nolock) inner join [dbo].[schooldetail] on cdscode = dbo.ssid1112studentenrollmentrecords.cdsorig [enrollstatcodeorig] '10' , [grade level code] in ('ps', 'kn', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', 'ue', 'us') group [district] order [district] my results are:
district 11-12 enrollment total_incidents ab unified 20662 896371 ce unified 5387 896371 dr unified 526 896371 fj unified 1506 896371 kt unified 8415 896371 i can't figure out how individual counts in total_incidents column instead of total 896371 count?
an easy approach correlate subquery outer query:
select distinct sd.district, count ( distinct ser.[student identifier statewide california] ) [11-12 enrollment], ( select count( distinct dsf.incdtkey ) dbo.disciplinestudentfile1112 dsf dsf.grdlvlkey in ( '15', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '18', '19' ) , -- note additional condition here. dsf.district = sd.district ) total_incidents dbo.ssid1112studentenrollmentrecords ser (nolock) inner join dbo.schooldetail sd on sd.cdscode = ser.cdsorig ser.enrollstatcodeorig '10' , [grade level code] in ( 'ps', 'kn', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', 'ue', 'us' ) group sd.district order sd.district i have made assumptions table schemas. recommend when using joins supply alias each table , use alias on every reference avoid confusion.
an alternative solution use join disciplinestudentfile1112 , summarize results using group by.
Comments
Post a Comment