2014-12-04 2 views
0

У меня есть таблица, по назначениям, который имеет следующую информациюОтработать дни между встречами

Имя, Дата, Тип (о назначении)

Я хочу работать на разнице в дни между назначениями для каждого Имя. Некоторые имена могут иметь только 1 встречу, у других может быть 50. Я бы хотел, чтобы среднее число дней между каждой встречей.

Я пробовал внутреннее соединение, создавая временную таблицу и не использую конца ответов на StackOverflow, но ни один из них не работает.

Моя последняя версия:

SELECT A.Name, A.Date, (B.Date - A.Date) AS timedifference 
FROM Appointments A CROSS JOIN Appointments B 
WHERE B.Name IN (SELECT MIN(C.Date) FROM Appointments C WHERE C.Date > A.Date) 
ORDER BY A.Name ASC 

Но раз из моей веб-странице.

Может ли кто-нибудь помочь?

Спасибо, Claire

+0

Так дата UnixTime ?? – Strawberry

+0

Если вам нравится, подумайте о выполнении этого простого двухэтапного действия: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry

+0

Дата - формат DATE в mysql, и мне очень жаль, но я не знаю, как делать DDL и/или sqlfiddle. Вот пример того, что я хотел бы достичь: John Smith 1/3/2014 Стрижка John Smith 18/3/2014 BeardTrim John Smith 6/4/2014 Стрижка Количество дней между назначениями 1 & 2 17 дней, между 2 и 3 19 днями, Среднее между всеми назначениями 18 дней – Claire

ответ

2

Вы можете использовать вспомогательный запрос, который вычисляет разницу между датами UNIX_TIMESTAMP и затем конвертировать от нескольких секунд до дней name.

SELECT (SELECT (Unix_timestamp() - Sum(Unix_timestamp(`date`))/Count(*))/
       60/60/24 
     FROM `appointments` 
     WHERE `name` = `ap`.`name` 
     GROUP BY `name`) AS `daydiff`, 
     `ap`.`name` 
FROM `appointments` `ap` 
GROUP BY `name` 

Взгляните на этот SQLFiddle: http://sqlfiddle.com/#!2/85c19/7

+0

Спасибо @ Dan Revah - это действительно глупый вопрос, но как мне получить результат показать в php? Извините, чтобы задать вопрос – Claire

+0

Как и другие пользовательские запросы. создание соединения с сервером, запуск запроса и получение результатов. http://php.net/manual/en/mysqli-result.fetch-row.php – DanR

+0

@ Claire также, если этот ответ вам помог. вы должны принять его как правильный ответ, щелкнув значок V возле левого верхнего угла ответа. – DanR

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