Поверьте мне, я пробовал найти удачу для этой проблемы. У меня были MYSQL & Решения SQLServer, а не Oracle, а не конкретный сверток, который мне нужен. Поскольку Cross Apply недоступна в версии Oracle, которую я использую, я попал в дорожный блок.заполнить отсутствующие данные Oracle
Проблема проста для многих из вас.
Начало вселенной для меня составляет 13 месяцев.
Я таблица, которая имеет
CREATE TABLE TBLTESTAUM (
ORDER_NO NUMBER(10,0) NOT NULL ENABLE,
RECORD_DATE DATE,
Order_SEQUENCE NUMBER(5,0) NOT NULL ENABLE,
CLASS NUMBER(3,0));
INSERT INTO TBLTESTAUM VALUES (1234, '29-Aug-2015', 34, 459);
INSERT INTO TBLTESTAUM VALUES (1234, '20-Jun-2016', 35, 877);
INSERT INTO TBLTESTAUM VALUES (1234, '20-Jun-2016', 37, 877);
INSERT INTO TBLTESTAUM VALUES (1234, '02-Jul-2016', 39, 122);
INSERT INTO TBLTESTAUM VALUES (1234, '28-Jul-2016', 40, 122);
INSERT INTO TBLTESTAUM VALUES (1234, '31-Jul-2016', 41, 311);
INSERT INTO TBLTESTAUM VALUES (1234, '10-Aug-2016', 42, 311);
INSERT INTO TBLTESTAUM VALUES (1234, '18-Aug-2016', 44, 110);
INSERT INTO TBLTESTAUM VALUES (1234, '20-Aug-2016', 45, 110);
Пожалуйста, обратите внимание:
- 20/июля/2015 в первой вставке.
- Поле Seq может иметь или не иметь каждое значение. Возможно, некоторые из них отсутствуют. Если вы хотите его использовать.
- Not Nullable for Sequence игнорируется.
Так катится 13 месяцев, дает мне 22/07/2015, на сегодня.
Я хочу, чтобы это разбилось в еженедельных ситуациях «КЛАСС», и если на этой неделе ничего не существует, то последний применяемый КЛАСС. Если ничего последнего, то есть это первый экземпляр, затем следующий применяемый класс. До изменения CLASS.
Выход быть -
Order Num WeekDate CLASS
123 27-Jul-15 459
123 3-Aug-15 459
123 10-Aug-15 459
123 17-Aug-15 459
123 24-Aug-15 459
123 31-Aug-15 459
123 7-Sep-15 459
Dates and Order Num to continue till next match in TBLTESTAUM is found
123 20-Jun-16 877
123 27-Jun-16 122
123 4-Jul-16 122
123 11-Jul-16 122
123 25-Jul-16 311
123 1-Aug-16 311
123 8-Aug-16 311
123 15-Aug-16 110
123 22-Aug-16 110
Есть несколько Num заказа. Но я надеюсь, что ваш код будет соответствовать всем. Обращаем внимание:
ему необходимо свернуться с недельным статусом.
Необходимо выполнить Ежемесячный статус. Но, надеюсь, я могу понять это из вашего кода.
Заранее спасибо.
PS: Я не буду доступен для просмотра ваших ответов на следующие 10 часов. Человек заснул. Но действительно цените любое время, потраченное на это.
Также покажите нам ожидаемый результат и запрос, который вы использовали ранее. – jarlh
Почему вы думаете, что вам нужно боковое соединение ('cross apply')? –
@jarlh Я делал по частям. По какой-то причине форматирование гиперссылки было неправильным. И это дало мне ошибку, говоря неправильное форматирование кода. – SeeWe