powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите, пожалуйста, как написать скрипт
4 сообщений из 4, страница 1 из 1
Подскажите, пожалуйста, как написать скрипт
    #39809739
Ademovo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо клиентам со статусом за исключением статуса(customerremark16)=верный, в поле customerremark26 через разделитель | ввести сумму заказов данного клиента за 1 неделю, 2 недели, 3 недели, 4 недели

Я только учусь, и поэтому вопросы, наверное, глупые. Заранее извиняюсь:)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare cursor customers is
select customernumber, customerremark26. customerremark16,
DATE_ADD(orderdate, 7 day) one_week,
DATE_ADD(orderdate, 14 day) two_week,
DATE_ADD(orderdate, 21 day) three_week,
DATE_ADD(orderdate, 28 day) four_week,(с этими полями, я буду сравнивать)
order_sum
from customer
where customerremark16<>'Внутренний'
begin for v_row in customer LOOP



и вот дальше я в ступоре, как делать проверку, чтобы сумма была именно в указанном диапазоне, а после это все вывести через |

возможно так:
Код: plsql
1.
2.
update customerremark26=sum
where orderdate<one_week 

(но в таком случае посчитает ли он, именно сумму в заданном диапазоне, а если и да, то как совершить проверку далее и вывести все разом)
спасибо!
...
Рейтинг: 0 / 0
Подскажите, пожалуйста, как написать скрипт
    #39809757
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то DATE_ADD это MySQL а не Oracle. Теперь определи что есть неделя. Скажем Понедельник - Воскресенье:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
select  customer.customernumber,
        SUM(
            CASE
              WHEN TRUNC(SYSDATE,'IW') >= order.orderdate THEN order.order_sum
            END
           ) || '|' ||
        SUM(
            CASE
              WHEN TRUNC(SYSDATE,'IW') - 7 >= order.orderdate THEN order.order_sum
            END
           ) || '|' ||
        SUM(
            CASE
              WHEN TRUNC(SYSDATE,'IW') - 14 >= order.orderdate THEN order.order_sum
            END
           ) || '|' ||
        SUM(
            CASE
              WHEN TRUNC(SYSDATE,'IW') - 21 >= order.orderdate THEN order.order_sum
            END
           ) customerremark26
  from  customer,
        order
  where customer.customerremark16 <> 'Внутренний'
    and customer.customernumber = order.customernumber
  group by customer.customernumber
/



SY.
...
Рейтинг: 0 / 0
Подскажите, пожалуйста, как написать скрипт
    #39809773
Ademovo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
спасибо
Как я понимаю TRUNC(SYSDATE,'IW') , если опираться на то, что сегодня 04.05.2019 будет 01.05.2019
В итоге получается он показывает сумму заказов за последние 4 недели?
А если мне нужно найти сумму заказов за 1 неделю, 2 неделю итд, начиная отсчет именно от начала данной мне даты заказа orderdate(дата первого заказа клиента).
то тогда можно ли это как то реализовать?
...
Рейтинг: 0 / 0
Подскажите, пожалуйста, как написать скрипт
    #39809796
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdemovoSY,
А если мне нужно найти сумму заказов за 1 неделю, 2 неделю итд, начиная отсчет именно от начала данной мне даты заказа orderdate(дата первого заказа клиента).
то тогда можно ли это как то реализовать?

За 2 неделю:

Код: plsql
1.
WHEN orderdate >= данной мне даты заказа - 14 and  orderdate < данной мне даты заказа - 7



SY.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите, пожалуйста, как написать скрипт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]