22.06.2016 03:41
добрый день.
СМ 1033 SP6
Необходимо найти в истории штрихкодов совпадающие штрихкоды для разных артикулов, при этом не сломав базу. Думаю сделать так:
SQL код:
create table SUPPLIERARTBARCOD(ARTTICLE  VARCHAR2[50], BARCODE VARCHAR2[50]);  \\тут создаем новую таблицу
insert into SUPPLIERARTBARCOD(select b.article, a.barcode                      \\тут заполняем
from supermag.SMSupplyCase b, supermag.SMStoreUnitHist a                       \\штрихкодами
where a.article=b.article and b.IDSUPPLIER = '21979');                         \\и артикулами поставщика
spool c:123.txt;
select article, barcode from SUPPLIERARTBARCOD                                 \\тут
minus                                                                          \\сравниваем
select b.article, a.barcode                                                    \\записи
from supermag.SMSupplyCase b, supermag.SMStoreUnitHist a                       \\двух 
where a.article=b.article b.IDSUPPLIER = '21979';                              \\таблиц
spool off;
drop table SUPPLIERARTBARCOD;                                                  \\тут удаляем новую таблицу 
можно ли сделать такое сравнение select-ом?
22.06.2016 10:17
Если без элегантностей и красивостей то
Код:
select a as ШК, d as Кол_артикулов from
    (
     select a, count(c) as d from
         (
          select barcode as a, article as b, 1 as c
          from SMStoreUnitHist 
          group by barcode, article
         )
     group by a
    )
 where d > 1 
 order by a
22.06.2016 11:40
Кстати, какие причины, кроме "не туда прицепили" могут быть у подобного задвоения?
22.06.2016 14:45
"ШК завели на одном артикуле, перенесли на другой":
Код:
SELECT	t.barcode, t.article, t.datetime
  FROM (SELECT barcode,
	       article,
	       datetime,
	       COUNT (*) OVER (PARTITION BY barcode) c
	  FROM (SELECT b.article, a.barcode, MAX (a.eventtime) datetime
		  FROM supermag.smsupplycase b, supermag.smstoreunithist a
		 WHERE a.article = b.article AND b.idsupplier = 21979
		 GROUP BY b.article, a.barcode)) t
 WHERE t.c > 1
 ORDER BY t.barcode, t.datetime;
22.06.2016 17:41
Цитата:
OlegON Кстати, какие причины, кроме "не туда прицепили" могут быть у подобного задвоения?
Со своей колокольни, не часто, но бывают проблемы приема ШК в МХ (удаление шк у одного артикула и создание его же у другого в ЦБ), специально не стал писать слово перенос, момент "рассылки почтовиком факта удаления шк" иногда не происходит, а может рассылка идет, а ШК в МХ не удаляется, ошибок по этому поводу нету, сильно и специально не копал, но чудеса иногда/редко по этому поводу происходят

пс: а, и кстати, обмен в почтовике "с помощью XML фильтра", чего там только "часовой пояс, UTC + ..." стоит
Часовой пояс GMT +3, время: 09:17.

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