Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос SQL / 20 сообщений из 20, страница 1 из 1
22.10.2018, 17:13
    #39721031
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Есть такая таблица с столбцами barcode(varchar),weight(number)
...
Рейтинг: 0 / 0
22.10.2018, 17:14
    #39721033
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
1
...
Рейтинг: 0 / 0
22.10.2018, 17:16
    #39721035
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Нужно получить такой результат
...
Рейтинг: 0 / 0
22.10.2018, 17:20
    #39721041
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
sanzhar333,

42
...
Рейтинг: 0 / 0
22.10.2018, 17:24
    #39721047
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
То есть если WEIGHT до 6 и включительно,поле SUMMA_DO6kg считается 888.6
а если WEIGHT больше 6-ти,каждый 0.5(включительно) считается по 61.71
в нашем случае остаток 0.427 тоже считается по 61.71(любой остаток до 0.5(включительно) считается по 61.71)
...
Рейтинг: 0 / 0
22.10.2018, 17:26
    #39721051
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
sanzhar333,
ну, помолясь, начнем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
WITH CTE(BARCODE,WEIGHT)
AS
(
  SELECT 'aa11aa' AS BARCODE,6.1 AS WEIGHT
   FROM DUAL

   UNION ALL

  SELECT 'bb222bb' AS BARCODE ,5 AS WEIGHT
   FROM DUAL
)
...
Рейтинг: 0 / 0
22.10.2018, 17:28
    #39721053
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
...
Рейтинг: 0 / 0
22.10.2018, 17:30
    #39721055
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
londinium,select 'aa111aa' as barcode,6.927 as weight,888.60 as summa_do6kg,null as summa_zakazhdie_05kg,888.6 as summa_s_nds from dual union all
select 'aa111aa' as barcode,0.500 as weight,null as summa_do6kg,61.71 as summa_zakazhdie_05kg,61.71 as summa_s_nds from dual union all
select 'aa111aa' as barcode,0.427 as weight,null as summa_do6kg,61.71 as summa_zakazhdie_05kg,61.71 as summa_s_nds from dual union all
select 'bb222bb' as barcode,5 as weight,888.60 as summa_do6kg,null summa_zakazhdie_05kg,888.6 as summa_s_nds from dual
...
Рейтинг: 0 / 0
22.10.2018, 17:31
    #39721056
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
londinium,спасибо что откликнулись,вот скрипт
...
Рейтинг: 0 / 0
22.10.2018, 17:32
    #39721057
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
sanzhar333,

Целую минуту медитировал на картинки, но так и не понял, как из 6.1 получается 6.927, 0.5 и 0.427.

Почему не 6.0, 0.5 и 0.5?
...
Рейтинг: 0 / 0
22.10.2018, 17:32
    #39721058
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Код: plsql
1.
2.
3.
4.
select 'aa111aa' as barcode,6.927 as weight,888.60 as summa_do6kg,null as summa_zakazhdie_05kg,888.6 as summa_s_nds from dual union all
select 'aa111aa' as barcode,0.500 as weight,null as summa_do6kg,61.71 as summa_zakazhdie_05kg,61.71 as summa_s_nds from dual union all
select 'aa111aa' as barcode,0.427 as weight,null as summa_do6kg,61.71 as summa_zakazhdie_05kg,61.71 as summa_s_nds from dual union all
select 'bb222bb' as barcode,5 as weight,888.60 as summa_do6kg,null summa_zakazhdie_05kg,888.6 as summa_s_nds from dual
...
Рейтинг: 0 / 0
22.10.2018, 17:34
    #39721059
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
env,ошибочка вышла СОРРИ
...
Рейтинг: 0 / 0
22.10.2018, 17:34
    #39721060
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Щукина Анна,

Не в ту степь ссылка. Ему надо размножение строк по фиксированному кванту от известной величины.
...
Рейтинг: 0 / 0
22.10.2018, 17:35
    #39721061
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
env,
...
Рейтинг: 0 / 0
22.10.2018, 17:36
    #39721062
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
env,
...
Рейтинг: 0 / 0
22.10.2018, 17:36
    #39721063
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
env,
спасибо большое что откликнулись
...
Рейтинг: 0 / 0
22.10.2018, 17:37
    #39721065
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
sanzhar333,Нужно получить такой результат
То есть если WEIGHT до 6 и включительно,поле SUMMA_DO6kg считается 888.6
а если WEIGHT больше 6-ти,каждый 0.5(включительно) считается по 61.71
в нашем случае остаток 0.427 тоже считается по 61.71(любой остаток до 0.5(включительно) считается по 61.71)
...
Рейтинг: 0 / 0
22.10.2018, 17:50
    #39721076
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Код: 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.
28.
29.
30.
31.
32.
WITH CTE(BARCODE,WEIGHT)
AS
(
  SELECT 'aa11aa' AS BARCODE,6.927 AS WEIGHT
   FROM DUAL

   UNION ALL

  SELECT 'bb222bb' AS BARCODE ,5 AS WEIGHT
   FROM DUAL
)
, t (barcode, weight, summa_do6kg, summa_zarfzhdie_05kg, summa_s_nds, overload_parts, overload_tail)
 as (
select barcode, WEIGHT
     , 888.6 summa_do6kg
     , cast(null as number), 888.6
     , ceil((WEIGHT-least(WEIGHT, 6))/.5) overload_parts
     , mod((WEIGHT-least(WEIGHT, 6)),.5) overload_tail
  from cte
 union all 
 select barcode
      , case overload_parts when 1 then overload_tail else .5 end
      , null
      , 61.71
      , 61.71
      , overload_parts-1, overload_tail
 from t
 where overload_parts > 0
)
select barcode, weight, summa_do6kg, summa_zarfzhdie_05kg, summa_s_nds 
  from t
 order by barcode, overload_parts desc;
...
Рейтинг: 0 / 0
22.10.2018, 17:57
    #39721083
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
env... Ему надо ...чётче формулировать свои мысли, чтобы окружающие понимали...

YouTube Video
...
Рейтинг: 0 / 0
23.10.2018, 16:17
    #39721531
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
andrey_anonymous,спасибо Вам очень сильно помогли
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос SQL / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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