2015-10-21 5 views
0

я работаю на следующий запрос и не в состоянии понять одну thing.The результат основного запроса в нижней части находятся следующим образом: -SQL скрипт Помощь нужна

Institute name || Total users || Students || teachers || professionals || Email || Country of Teacher.** 

Я хочу, чтобы добавить институт страны в качестве второй колонны. Название таблицы - страны Первичный ключ - Id

Запрос прост для понимания. Как я должен продолжать или разместить следующий запрос в один большой, где я могу получить конечный результат, как: -

Institute name || Country name of institute || Total users || Students || teachers || professionals || Email || Country of Teacher.** 

select pl.name AS institute_name, c.name as country_name 
from profiles p , places pl , countries c 
where pl.id = p.place_id and p.country_id = c.id 
and pl.formatted_address != '' 

// Основной запрос начинается здесь

SELECT t.institute_name, SUM(t.total_users), SUM(t.students), SUM(t.teachers), SUM(t.professionals), MAX(t.teacher_emails), MAX(t.teacher_countries) 

FROM 

    ((SELECT pl.name AS institute_name, COUNT(ut.classification) AS total_users, COUNT(ut.classification) AS students, 0 AS teachers, 0 AS professionals, NULL AS teacher_emails, NULL AS teacher_countries 

     FROM profiles p , places pl , countries c ,user_types ut, users u 
      WHERE pl.id = p.place_id AND 
      ut.classification = 'student' AND 
      p.country_id = c.id AND 
      p.user_type_id = ut.id 
      AND p.user_id = u.id 
      AND DATE(u.created_at) >= '2015-10-02 08:00:00' 
      AND formatted_address != '' 
      GROUP BY pl.name, ut.classification) 

      ) AS t 

    GROUP BY t.institute_name 
    HAVING SUM(t.total_users) >= '10' 
    ORDER BY t.total_users DESC 

ответ

0

Попробуйте

SELECT t.institute_name, t.country_name, SUM(t.total_users), SUM(t.students), SUM(t.teachers), SUM(t.professionals), MAX(t.teacher_emails), MAX(t.teacher_countries) 

FROM 

    ((SELECT pl.name AS institute_name, c.name as country_name, COUNT(ut.classification) AS total_users, COUNT(ut.classification) AS students, 0 AS teachers, 0 AS professionals, NULL AS teacher_emails, NULL AS teacher_countries 

     FROM profiles p , places pl , countries c ,user_types ut, users u 
      WHERE pl.id = p.place_id AND 
      ut.classification = 'student' AND 
      p.country_id = c.id AND 
      p.user_type_id = ut.id 
      AND p.user_id = u.id 
      AND DATE(u.created_at) >= '2015-10-02 08:00:00' 
      AND formatted_address != '' 
      GROUP BY pl.name, ut.classification) 

      ) AS t 

    GROUP BY t.institute_name 
    HAVING SUM(t.total_users) >= '10' 
    ORDER BY t.total_users DESC 
+0

Привет .. Это работает для меня. Спасибо, мил. – Rish

 Смежные вопросы

  • Нет связанных вопросов^_^