15.01.2018 17:03
Aligator
 
Цитата:
VitorJ По факту теперь нужно дополнить запрос, выборкой параметров из SMDiscQuantity и обработать в ценике
Можно поинтересоваться, есть ли у кого такая выборка?
Необходимо в ценник вывести как минимум два порога по кол-ву и проценту скидки для товара, вроде как сделал, работает при одном ценнике, а если печатать от 2-х и более то облом. На картинках более понятно.
Вот таким запросом я вывожу пороги и проценты:
Код:
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = :P_ARTICLE) 
    where  recnum = 2) PERCENT2,
Миниатюры
Нажмите на изображение для увеличения
Название: Image 2530.png
Просмотров: 237
Размер:	11.7 Кб
ID:	9152   Нажмите на изображение для увеличения
Название: Image 2531.png
Просмотров: 252
Размер:	6.3 Кб
ID:	9153   Нажмите на изображение для увеличения
Название: Image 2532.png
Просмотров: 285
Размер:	10.9 Кб
ID:	9154  
15.01.2018 17:55
vdm
 
:P_ARTICLE это не отдельный одиночный артикул, а строка-список всех артикулов.
Вместо него нужно брать article из результатов основного запроса.
15.01.2018 18:42
Aligator
 
При изменении на t.Article - такой у меня изначально заявлен, выбивает в ошибку ""ORA-00904: "T"."ARTICLE": недопустимый идентификатор""
Может его нужно как-то внутри ещё раз заявить?

Код:
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   =t.Article) 
    where  recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
    from
        ( select article, QUANTITY, PERCENT
            from supermag.SMDISCQUANTITY) article
             where rownum < 3 and article   = t.Article) 
    where  recnum = 2) PERCENT2,
16.01.2018 12:11
vdm
 
Дай полный запрос.
16.01.2018 12:32
Aligator
 
Вот:
Цитата:
select t.Article, t.Name, t.Country,
(case
when c.weight < 1 and w.abbrev ='кг' then to_char(c.weight*1000)||'гр'
when c.weight < 1 and w.abbrev ='л' then to_char(c.weight*1000)||'мл'
else to_char(c.weight)||w.abbrev end) as weight,
t.Price,
t.PriceFull,
t.PriceShort,
supermag.russianspell.PriceCardString(0, t.Price) as grn,
supermag.russianspell.PriceCardString(2, t.Price) as kop,
(select ph.price
from supermag.SMPriceHistory ph
where (eventtime, recid) =
(select max(eventtime), max(recid)
from supermag.SMPriceHistory
where article = :P_ARTICLE
and storeloc = :P_LOC
and pricetype = :P_PRICE_TYPE
and round(:P_QTY*price,2) != t.Price)
and ph.storeloc = :P_LOC
and ph.article = :P_ARTICLE
and ph.pricetype = :P_PRICE_TYPE
and round(:P_QTY*ph.price,2) != t.Price) as oldprice,
(select QUANTITY
from (select rownum recnum, QUANTITY
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 1) QUANTITY1,
(select QUANTITY
from (select rownum recnum, QUANTITY
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 2) QUANTITY2,
(select PERCENT
from (select rownum recnum, PERCENT
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 1) PERCENT1,
(select PERCENT
from (select rownum recnum, PERCENT
from
( select article, QUANTITY, PERCENT
from supermag.SMDISCQUANTITY) article
where rownum < 3)
where recnum = 2) PERCENT2,
t.RubSum,
t.RubName,
t.KopSum,
t.KopName,
t.UnitName,
t.QtyPrint,
t.BarCode,
t.CardComment
from supermag.SVPriceCard t,
supermag.SMCard c,
supermag.SAMeasurement w
where c.article = t.Article
and w.id (+)= c.idmeasweight
order by 1
16.01.2018 19:39
vdm
 
В таком виде с запросом ничего не придумалось.

Варианты:
1. Свои функции в БД, возвращающие количество/процент по порядковому номеру. В отчете поменяется только запрос, но будут и доп. объекты в базе.
2. Дорабатывать отчет - добавить подчиненные databand/datasource для скидок артикула. Это сложнее, но "правильнее".
17.01.2018 10:19
Aligator
 
Благодарю, только есть проблема, для меня оба варианта непонятны, т.к. то что имею получил методом подбора селектов от других запросов и изменения.
На вашу помощь я так понимаю уже не получиться рассчитывать, это долго и сложно в реализации?
17.01.2018 11:09
vdm
 
Несложно, но времени нет.
Если время терпит, выложи ценник, за 2-3 дня отдам 1-й или 2-й вариант.
Или запроси у кого за деньги, тут где-то тема есть для такого.
17.01.2018 11:24
Aligator
 
Ценник во вложении, конечно мне лучше подождать (т.к. некому за это платить)...
Вложения
Тип файла: rar price_card_test1.rar (3.3 Кб, 21 просмотров)
21.01.2018 13:06
vdm
 
Проверяй.
Подотчет скидок на количество отбирает все существующие по артикулам, количество выводимых строк ограничивается в "SubreportDisc - DataDisc - Данные - MaxRows".
Разбиение на колонки сделано через "Page1 - Внешний вид - Columns" (если через DataSpec - Columns, то subreport некорректно работает).
Вложения
Тип файла: 7z price_card_test1.frx.7z (3.3 Кб, 23 просмотров)

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.