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

Помогите написать запрос на выборку штрихкодов : Oracle

19.04.2024 23:13


02.10.2007 15:47
shurik_catfish
 
Вообщем имееться документ (расх накладная). Нужно для каждой позиции в этой накадной отобрать артикул,штрихкод и количество. НО!!!
При есть карточкки товаров которым сопоставлено нескоько штрихкодов - как в запросе выбрать тока один (в SQL не очень силен). Как можно модифицировать этот запрос
Код:
 select smspec.article,smspec.quantity,barcode
 from smspec,SMStoreUnits where docid='0266' 
and doctype='WO'
and SMStoreUnits.article=smspec.article 
order by smspec.article
????
02.10.2007 15:54
shurik_catfish
 
Этот запрос возвращает артикула, количество, штрихкод - но вот только для каждого артикула выходит по несколько штрихкодов и несколько раз количество а это прямо скажем не катит.
02.10.2007 16:58
akonev
 
вот так, например. подтянется народ, кто чаще пишут - может толковее вариант предложат
Код:
select t.article,t.quantity,
   (select barcode 
      from smstoreunits b 
      where b.article=t.article and rownum=1) barcode
  from smspec t 
  where docid='0266' 
    and doctype='WO'
  order by t.article
02.10.2007 17:16
Mtirt
 
Я у себя сделала функцию, и использую в таких случаях её...
Код:
create or replace function barToStrcreate  ( p_a in varchar2 )
    return varchar2
    is
        l_str  varchar2(2000) default null;
        l_sep  varchar2(1) default null;
    begin
        for x in ( select barcode from smstoreunits where article = p_a ) loop
            l_str := l_str || l_sep || x.barcode;
           l_sep := ',';
       end loop;
       return l_str;
   end;
Получится так:
Код:
 select t.article,t.quantity,
   barToStrcreate(t.article) barcode
  from smspec t 
  where docid='0266' 
    and doctype='WO'
  order by t.article
05.10.2007 08:31
shurik_catfish
 
Огромное спасибо Андрей и Татьяна. Но мне придеться свой запросик исполльзовать, а потом в делфи уже обработаю как надо. Изменились требования - нужно и количество и все штрихкода по этой карточке :(
05.10.2007 08:39
Mtirt
 
Так функция и дает ВСЕ штрих-кода по этой карточке. И закидывает их в одну строку.
У тебя в поле barcode получается список штрих-кодов, разделенный запятыми. Чем не нравится?
05.10.2007 16:27
shurik_catfish
 
Не то что не нравиться просто потом все равно через текстовик в СМ вставлять (а там столбиком). В принципе без разницы конечно и так и так придеться количество по штрихкодам из одной карточки как то отсллеживать. (Влад наверное сказал для чего все это :) )
05.10.2007 17:01
OlegON
 
Цитата:
shurik_catfish Не то что не нравиться просто потом все равно через текстовик в СМ вставлять (а там столбиком). В принципе без разницы конечно и так и так придеться количество по штрихкодам из одной карточки как то отсллеживать. (Влад наверное сказал для чего все это :) )
Ты сначала бы оформил требования почетче. Я ничего не понял, если честно. Если строку надо разбить на столбик, вбивай перевод строки #13#10 и будет тебе счастье. Определи четко, что именно ты хочешь вывести, а там и самому понятно будет, либо подскажем.
Часовой пояс GMT +3, время: 23:13.

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