[ТЕМА ЗАКРЫТА]
Опции темы
20.11.2014 10:57  
Mtirt
Логично. Условие связывания таблицы smspec и smcard нужно. Верни назад sp.article = crd.article
 
20.11.2014 10:59  
BotMan
результат вышел, но RN все же опять равен 1.
я вчера из книги много перепробовал вариантов, всегда выходила одЫнка 8(
 
20.11.2014 11:06  
BotMan
вот лошара, where rn=1 не убрал )))))))))))))))))))
 
20.11.2014 11:26  
Mtirt
Во внутреннем запросе нет условия на RN.
 
20.11.2014 12:18  
BotMan
есть скриптик, который заполняем при инвентаризации ПН амортизационную ценами поставщика и розничной. пытался сунуть туда просто приходную, ноль эмоций! вроде должен подойти и в обычную приходную.

Код:
DECLARE I PLS_INTEGER; ' + #13 +
        'BEGIN ' + #13 + 
        '  FOR c IN (SELECT doctype, docid, specitem, itemprice ' + #13 + 
        '            FROM supermag.smspec ' + #13 + 
        '            WHERE doctype = ''WI'' AND docid = ''' + paramDocID + ''') ' + #13 +
        '  LOOP ' + #13 +
        '    BEGIN ' + #13 + 
        '      SELECT count(*) INTO I FROM supermag.smspecby WHERE doctype = c.doctype AND docid = c.docid AND specitem = c.specitem; ' + #13 +
        '      IF I = 0 THEN ' + #13 + 
        '        INSERT INTO supermag.smspecby(doctype, docid, specitem, manufacturersprice, extracharge, retailprice) ' + #13 +
        '        VALUES(c.doctype, c.docid, c.specitem, c.itemprice, 0, c.itemprice); ' + #13 +
        '      ELSE ' + #13 + 
        '        UPDATE supermag.smspecby ' + #13 +
        '        SET manufacturersprice = c.itemprice, extracharge = 0, retailprice = c.itemprice ' + #13 +
        '        WHERE doctype = c.doctype AND docid = c.docid AND specitem = c.specitem; ' + #13 +
        '      END IF; ' + #13 +
        '      COMMIT; ' + #13 +
        '    EXCEPTION WHEN OTHERS THEN NULL; ' + #13 +
        '    END; ' + #13 +
        '  END LOOP; ' + #13 +
        'END;'
в чем может быть затык ?
 
20.11.2014 12:28  
BotMan
тут вроде как берутся данные отсюда:
Код:
FOR c IN (SELECT doctype, docid, specitem, itemprice ' + #13 + 
        '            FROM supermag.smspec ' + #13 + 
        '            WHERE doctype = ''WI'' AND docid = ''' + paramDocID + ''')

и вставляются сюда
Код:
ELSE ' + #13 + 
        '        UPDATE supermag.smspecby ' + #13 +
        '        SET manufacturersprice = c.itemprice, extracharge = 0, retailprice = c.itemprice ' + #13 +
        '        WHERE doctype = c.doctype AND docid = c.docid AND specitem = c.specitem;
но откуда в с будут цены??? короче пока ломаю голову.
 
20.11.2014 12:36  
Mtirt
так ты же в переменную с выбираешь "SELECT doctype, docid, specitem, itemprice", в том числе и цены из заданной ранее приходной накладной...
 
20.11.2014 12:41  
BotMan
в переменную С вставляется данная накладная, в которую нужно напихать, я так понял, а не из которой брать. и она изначально пустая, только с перечнем товара.
 
20.11.2014 12:48  
Mtirt
Переменное С передаются строки имеющейся приходной накладной. На её основании заполняются значения белорусской части спецификации этой накладной.
 
20.11.2014 13:24  
BotMan
вот я создал "ПН1212" накладную, обычную. и пытаюсь заполнить ее при помощи этого скрипта. вызываю его, вбиваю в него номер этой накладной "ПН1212", он пишет все пучком, скрипт успешно прошел. захожу в накладную - цены не проставились!

ну вот я и думаю, ну а откуда там чему взяться то???? все столбцы которые передаются в С переменную - пустые!
или они как то создаются по разному эти компенсационные СВ00025-ПН0001 ??? эти заполняются, как пологен. а обычная - нифига)))
 
 


Опции темы



Часовой пояс GMT +3, время: 06:05.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.