[ОТВЕТИТЬ]
Опции темы
19.03.2009 10:03  
twix
прошу помощи знатоков SQL, потому что никак не соображу сам...
задача: отобрать позиции документов в виде "артикул", "тип_документа", "номер документа", "номер_документа_поставщика", "количество", "цена", "откуда", "куда", "код_операции", "имя_поставщика", "инн_поставщика", "кпп_поставщика"

сейчас отбираю все, кроме номера документа поставщика следующим запросом:
Код:
SELECT s.article, s.doctype, s.docid, s.quantity, s.itemprice, d.locationfrom, d.locationto, d.opcode, c.name, c.inn, c.kpp
FROM Supermag.SMSpec s,Supermag.SMDocuments d, Supermag.SMClientInfo c
WHERE s.doctype<>'AC'
AND s.doctype<>'IL'
AND s.doctype<>'RL'
AND s.docid IN
(SELECT id FROM Supermag.SMDocuments WHERE createdat BETWEEN '01.01.2009' AND '01.01.2009' AND docstate>2)
AND d.id=s.docid
AND c.id=d.clientindex
не соображу, как сюда же приплести выборку номера документа поставщика из таблички SMWayBillsIn, но только для приходов...
в результат должны попадать все документы, кроме Инвентаризационных описей и Сличительных ведомостей
 
19.03.2009 10:26  
deucel
Типа так

Код:
SELECT s.article, d.doctype, d.ID, DECODE (d.doctype, 'WI', w.supplierdoc, NULL) supplierdoc, s.quantity, s.itemprice, d.locationfrom, d.locationto, d.opcode, c.NAME,
       c.inn, c.kpp
  FROM smdocuments d, smwaybillsin w, smspec s, smclientinfo c
 WHERE d.doctype = w.doctype(+)
   AND d.ID = w.ID(+)
   AND d.doctype = s.doctype
   AND d.ID = s.docid
   AND d.clientindex = c.ID(+)
   AND d.createdat BETWEEN TO_DATE ('01012009', 'DDMMYYYY') AND TO_DATE ('01012009', 'DDMMYYYY')
   AND d.doctype NOT IN ('AC', 'IL', 'RL')
   AND d.docstate > 2
 
19.03.2009 10:28  
twix
спасибо! то, что надо (8
 
 
Опции темы



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

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