Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

Выбор последнего изменения из истории штрихкодов : Oracle

19.03.2024 11:53


07.02.2007 17:42
twix
 
Собственно, интересует сабж... отбираю карточки так:
SELECT DISTINCT A.ARTICLE, A.NAME, C.BARCODE
FROM SUPERMAG.SMCARD A, SUPERMAG.SACARDCLASS B, SUPERMAG.SMSTOREUNITHIST C
WHERE A.IDCLASS=B.ID AND (B.TREE LIKE '73%' OR B.TREE LIKE '66%') AND A.ARTICLE=C.ARTICLE
ORDER BY A.NAME

Но на каждую карточку получается по несколько строк с разныии штрихкодами. Хотелось бы видеть только последний, то бищь актуальный... как это можно сделать?
07.02.2007 17:49
inna
 
видимо надо брать таблицу SUPERMAG.SMSTOREUNITS - это актуальный штрих (вроде так)
08.02.2007 06:23
akonev
 
вернее сказать: актуальныЕ штрихИ
в SUPERMAG.SMSTOREUNITS тоже запросто бывает по несколько строк на одну карточку
08.02.2007 08:19
twix
 
Andrew_Konev, да, бывает... если на одну карточку несколько ш/к
19.04.2016 15:11
Starter
 
Апну тему, как бы получить последний штрихкод для определенной карточки из истории ?
19.04.2016 17:52
vdm
 
Завалялось старое описание одной из встроенных функций, но не факт что это сейчас работает, и именно так как описано:
Код:
supermag.REP_GETBARCODEDATE( ART IN SUPERMAG.SMSTOREUNITS.ARTICLE%TYPE,
                             QTY IN SUPERMAG.SMSTOREUNITS.QUANTITY%TYPE,
                             TYPE_CODE IN PLS_INTEGER,
                             WITHPRINTPRICER IN VARCHAR2 := '0' ) RETURN SUPERMAG.SMSTOREUNITS.BARCODE%TYPE

ART     артикул
QTY     количество в ШК
        NOT NULL - с заданным количеством
        NULL - с любым количеством
TYPE_CODE тип ШК
          1 - внешний весовой
          2 - весовой
          3 - EAN-UPC
          4 - короткий-простой
          5 - внешний
WITHPRINTPRICER с галкой 'Печать в ценнике'
Если своим запросом, можно попробовать так:
Код:
SELECT MIN(H.BARCODE) KEEP (DENSE_RANK FIRST ORDER BY H.eventtime desc, H.recid desc)
  FROM SUPERMAG.SMSTOREUNITS U, SUPERMAG.SMSTOREUNITHIST H
 WHERE U.ARTICLE=:ARTICLE
   AND U.ARTICLE=H.ARTICLE AND U.BARCODE=H.BARCODE;
Тут без условий по количеству и типу ШК.
Часовой пояс GMT +3, время: 11:53.

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