[英]Complex sub-query in sql server 2012
我有两个表1 Atit_master包含
AM_ID Attend_Date Time_From Time_To Course_ID Subject_ID
1 2014-03-10 10:00 11:00 1 22
2 2014-03-10 10:00 11:00 1 23
第二参加者
CA_ID AM_ID Roll_No Attendance
1 1 1 1
2 1 2 0
3 1 3 1
4 2 1 1
我想要这样的结果
Subject_ID Total_Absenty Total_Lectures
22 2 10
23 5 11
我努力了
select AM.Subject_ID, count(AC.Attendance) as Attendance
,
(
select count(AC1.Attendance) from Attend_Child AC1
inner join Attend_Master AM1 on AC1.TT_ID = AM1.TT_ID
where AC1.Roll_No = 3 AND AM1.Course_ID = 1 AND DATENAME(Month, AM1.Attend_Date) = 'March'
)
from Attend_Child AC
inner join Attend_Master AM on AC.TT_ID = AM.TT_ID
where AC.Roll_No = 3 AND AM.Course_ID = 1 AND AC.Attendance = 0 AND DATENAME(Month, AM.Attend_Date) = 'March'
group by AM.Subject_ID, AM.subject_Type
通过使用这个我得到不正确的结果。 如何在子查询中使用分组依据?
DECLARE @CourseID INT =1
DECLARE @Month varchar(10)='March'
SELECT m.SubjectID
,Count(*) [Lectures] --count of all classes attended or not
,Count(*)-SUM(c.Attendance) [Absences]--count of all - attended classes
FROM Attend_Master m
INNER JOIN Attend_Child c
ON m.AM_ID=c.AM_ID --WHAT IS TT_ID?
WHERE m.CourseID=@CourseID
DATENAME(Month, m.Attend_Date) = @Month
--AC.Roll_No = 3 --WHAT DOES THIS DO FOR YOU?
GROUP BY M.Subject_ID
--, AM.subject_Type --WHERE DID THIS COME FROM?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.