2014-11-14 2 views
0

DB에 로그인하는 사용자를 계산하려고하는데 문제는 uniq signin을 날짜순으로 계산하는 것입니다. 문제는 사용자가 하루에 여러 번 로그인 할 수 있다는 것입니다. 예를 들어, 테이블 학생을위한MySQL의 하위 쿼리

StudentID

시간 유형 ID = StudentID, 날짜, 시간 (123), 2014년 11월 11일, 0시 11분 0초 (123), 2014년 11월 11일, 0시 15분 : 00 (123), 2014년 11월 11일, 0시 16분 0초 등 내가이 쿼리를 사용하려고 해요

...

select count(*) from (
select '1' from Students s LEFT JOIN Hours h on s.StudentID = h.TypeID 
where s.StudentID = stud.StudentID 
group by h.Date) tmp, Student stud 
where s.LastName = 'TestUser' 

그러나 하위 쿼리가 오류를 보여줍니다 : 알 수없는 공동 스터드 .StudentID

+0

당신이 SQL 바이올린을 만들 수 없습니다 : –

답변

0

"Steady"별칭에는 StudentID 열이 없습니다. 오류가 명확합니다. 별칭을 "s"로 정의합니다. 이 같은 아마 뭔가 : 당신은 아무것도 선택하지 않은 이후

select count(*) from (
    select '1' from Students s 
    LEFT JOIN Hours h on s.StudentID = h.TypeID 
    where s.StudentID = h.StudentID 
    group by h.Date 
) tmp 

하지만이 적용되지 않습니다.

, Student s 
where s.LastName = 'TestUser' 

하지만 아직 기능적으로는 생각하지 않습니다. 너 뭐하려고?

Select h.Date, Count(Distinct TypeID) as tot 
From [Hours] as h 
Left Join Students s 
    On s.StudentID = h.TypeID 
where s.LastName = 'TestUser' 
Group By h.Date 
+0

열이 별칭 스터드에 있습니다. 큰 쿼리 내부에서 단일 사용자 방문수를 계산하려고합니다. –

0

이 하나의 시도

?