У меня есть два столбца данных, которые я выстраиваю, используя полное внешнее объединение, но оно включает в себя два отдельных столбца даты, которые затрудняют сортировку по.
В таблице 1 приведены данные о рейтинге продаж для продукта.Таблица 2 содержит фактические данные о продажах для того же продукта.
В каждой таблице могут быть записи для дат, которых в другой нет.
Итак, представьте, что после полного объединения мы получим что-то вродеэтот упрощенный пример:
ProdID L.Date P.Date Rank Units
101 null 2011-10-01 null 740
101 2011-10-02 2011-10-02 23 652
101 2011-10-03 null 32 null
Вот запрос, который я использую для извлечения этих данных:
select L.ListID, L.ASIN, L.date, L.ranking, P.ASIN, P.POSdate, P.units from ListItem L
full outer join POSdata P on
L.ASIN = P.ASIN and
L.date = P.POSdate and
(L.ListID = 1 OR L.ASIN is null)
where (L.ASIN = 'xxxxxxxxxx' and L.ListID = 1) or
(P.ASIN = 'xxxxxxxxxx' and L.BookID is null)
order by POSdate, date
Это немного сложнее, потому что продукты могут появляться в нескольких списках, поэтому я долженучитывать это также, но он возвращает данные, которые мне нужны.Конечно, я открыт для предложений по его улучшению.
Проблема заключается в том, как правильно отсортировать это, если в обоих столбцах даты есть, по крайней мере, несколько пустых значений.То, как я делаю заказ сейчас, не будет работать, если оба столбца имеют один NULL.
Спасибо.