Вот в две таблицы, которые я присоединился вместе ...SQL Поиск предыдущую дату из другой соответствующей строки запроса
song_id song_name
51 | Song Name A
368 | Song Name B
168 | Song Name C
568 | Song Name D
13 | Song Name E
song_id | song_order| show_date |show_id
368 | 1 | 2010-02-17 00:00:00 | 367
368 | 0 | 2012-04-06 00:00:00 | 499
51 | 2 | 2012-01-19 00:00:00 | 399
51 | 2 | 2013-04-24 00:00:00 | 870
51 | 8 | 2013-07-19 00:00:00 | 899
368 | 2 | 2013-07-19 00:00:00 | 899
13 | 5 | 2013-07-19 00:00:00 | 899
568 | 2 | 2013-07-19 00:00:00 | 899
368 | 4 | 2012-06-08 00:00:00 | 799
168 | 2 | 2013-06-28 00:00:00 | 896
568 | 2 | 2013-07-03 00:00:00 | 897
568 | 2 | 2010-02-21 00:00:00 | 897
я работал, что я пытаюсь сделать на SQL Fiddle link но я не может получить код в порядке. Я пытаюсь на основе значения show_id сказать его «899», вернуть все строки, равные 899, show_ids имеют одну и ту же дату, назначенную им, но на основе идентификатора песни я хочу вернуть предыдущую дату, когда song_id появляется.
Я хотел бы данные, чтобы вернуться ...
SHOW_DATE | SHOW_ID | SONG_NAME | SONG_ID | PREVDATE
July, 19 2013 | 899 | Song Name A | 51 | April, 24 2013
July, 19 2013 | 899 | Song Name B | 368 | April, 08 2012
July, 19 2013 | 899 | Song Name E | 13 | FIRST TIME
July, 19 2013 | 899 | Song Name D | 568 | July, 03 2013
Мой код здесь просто возвращение предыдущей даты до июля, 19 2013, которая является июль, 03 2013 и положить, что для каждого PrevDate. Может ли кто-нибудь мне помочь? Я не самый опытный кодер, и я считаю, что не могу делать то, что я здесь сделал, потому что я группирую подзапрос. Заранее спасибо!
SELECT tbl_shows.show_date, tbl_shows.show_id,
tbl_songs.song_name, tbl_shows.song_id, (
SELECT
MAX(show_date)
FROM tbl_shows AS fdate
WHERE tbl_shows.show_date > show_date
) As PrevDate
FROM tbl_shows LEFT JOIN tbl_songs
ON tbl_shows.song_id = tbl_songs.song_id
WHERE tbl_shows.show_id = 899
спасибо m.zam Я просто не мог обернуть голову вокруг этого ... вы спасатель! – davejt