2013-12-04 2 views
0

У меня есть две таблицы в базе данных MySQL, событиях и встречах. Каждая встреча имеет поле event_id, start_time и столбец end_time.Значения времени SUM в связанной таблице

Я пытаюсь настроить запрос, который даст мне идентификаторы события с их общим временем назначения в минутах. Например, если событие имеет два назначения со следующими данными:

  1. начинается в 10:00:00, заканчивается в 11:30:00
  2. начинается в 12:30:00, заканчивается в 13: 15:00

Затем колонка назначения для события прочтет 135.

Я знаю, как получить простой подсчет назначений, но я немного застрял, когда речь идет о разработке времени , Вот что у меня есть до сих пор:

SELECT 
events.id AS event_id, 
(SELECT COUNT(id) FROM appointments WHERE event_id = events.id) AS appointment_count 
FROM events 

Любые советы, оцененные.

Спасибо.

+0

Если решение Шафик имеет решить вашу проблему, пометьте его как принято отвечать. В противном случае подумайте о том, чтобы обеспечить надлежащие DDL (и/или sqlfiddle) ВМЕСТЕ С УДАЛЕННЫМ РЕЗУЛЬТАТОМ – Strawberry

ответ

0

попробовать что-то вроде этого:

SELECT e.name, ap.event_id, 
sum((TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60) AS dif 
FROM events e LEFT JOIN appointment ap ON e.id = ap.event_id 
GROUP BY e.name, ap.event_id 
ORDER BY 2; 

Example..

0

попробовать это

SELECT A.*,count(B.*) as count 
FROM table_event A 
JOIN table_appointment B ON A.event_id = B.event_id 
GROUP BY B.event_id 
Смежные вопросы