2014-12-23 2 views
0

Моя таблицаКак получить повторяющиеся строки, но с разными датами

| ID | Date | Next Date | 
| 1 |2014-12-23| 2014-12-25| 
| 2 |2014-12-20| 2014-12-22| 
| 3 |2014-12-19| 2014-12-21| 
| 4 |2014-12-15| 2014-12-18| 

Как я могу показать дубликаты при поиске в диапазоне дат в мой результат поиска запроса:

select * from my_table where date >= '2014-12-14' AND date <='2015-01-22' ORDER BY (date) ASC 

Мои результаты:

1. ID: 4, Date: 2014-12-15, Next Date: 2014-12-18 
2. ID: 3, Date: 2014-12-19, Next Date: 2014-12-21 
3. ID: 2, Date: 2014-12-20, Next Date: 2014-12-22 
4. ID: 1, Date: 2014-12-23, Next Date: 2014-12-25 

Что я хочу сделать, это показать дубликаты с датой, следующей датой и отсортировать по дате, следующей дате.

1. ID: 4, Date: *2014-12-15* 
2. ID: 4, Next Date: *2014-12-18* 
3. ID: 3, Date: *2014-12-19* 
4. ID: 2, Date: *2014-12-20* 
5. ID: 3, Next Date: *2014-12-21* 
6. ID: 2, Next Date: *2014-12-22* 
7. ID: 1, Date: *2014-12-23* 
8. ID: 1, Next Date: *2014-12-25* 

Что было бы хорошим решением для моих ситуаций?

Благодаря

+1

* «Как получить повторяющиеся строки, но с разными датами» * - Вид [** oxymoron **] (http://en.wikipedia.org/wiki/Oxymoron), не так ли? * STOP, продолжайте движение *. –

+1

Я понятия не имею, что вы пытаетесь сделать ... –

+1

Похоже на то, что вы хотите объединить мою таблицу с собой .... 'Выберите mt1. *, 'Original' as src from my_table union ALL Выбрать mt2. *, 'Duplicate' из My_table mt2'. – xQbert

ответ

1

Я думаю, что это то, что вы хотите:

select "ID", "Order Date" 
from 
(
    (select "ID", "Date", "Next Date", "Date" as "Order Date" from Table1) 
    union all 
    (select "ID", "Date", "Next Date", "Next Date" as "Order Date" from Table1) 
) as Table2 
order by "Order Date" 

NB: Изменение Table1 на фактическое имя вашего стола.