14.02.2012 15:45
AlexeyF
 
Сам себя обманул.
Если товар находится в дочерней подгруппе, относительно какой нибудь из искомых 7-ми групп, то мой скрипт работает корректно. Если товар находится именно в этих 7-ми группах то выбираются ошибочные , лишние записи.

Поделитесь, как можно вытащить все продажи по кассовому документу для товаров, входящих в какие нибудь две группы, с подгруппами, и не входящими в эти же две группы с подгруппами.

Я уже всяко разно перепробовал варианты со своим скриптом, предложите кто нибудь свой вариант ???
14.02.2012 15:50
Mtirt
 
Наскоро тебе из старого запроса:
Цитата:
t.idclass in (select a.id from sacardclass a
where substr(a.tree,1,instr(a.tree, '.',1)-1) not in ('2','3', '4','5','6','7','8','17','18','19','20','25',
'28','29','30','33','34'))
Это группы первого уровня.
Для второго надо поменять функцию примерно на это: substr(a.tree,1,instr(a.tree, '.',2)-1) (Прости, прямо сейчас не тестировала) И в качестве условия указывать узлы дерева: ('2.1', '2.2')
14.02.2012 17:53
akonev
 
Цитата:
AlexeyF ...
Я уже всяко разно перепробовал варианты со своим скриптом, предложите кто нибудь свой вариант ???
Код:
select s.*
from smspec s,
     (select article from smcard c where c.idclass in(select id from sacardclass t where t.tree like '99.19.%' or t.tree like '99.9.%')) c2
where s.doctype='CS' and s.docid='CS20120210@31'
  and s.article=c2.article
или перенести все карточки в конечные группы и тупо перечислить их ID

или - если маркетинговые группы не используете - пометить все нужные группы И подгруппы в нем (я себе вьюшку рисовал, чтобы в отчетах вложенные группы наследовали установку от ближайшей старшей), потом по нему отбирать. один раз назначить ответственного и заставить его помечать группы при необходимости пересмотреть набор групп. но этот вариант лучше для каких-то глобальных выборок зарезервировать, которые весь классификатор должны на ломтики резать.

Добавлено через 6 минут 51 секунду
это были входящие. соответственно, не входящие
where c.idclass NOT in(select id
на втором уровне вложенности селектов.
14.02.2012 18:41
AlexeyF
 
В том и дело, что перечислять ID всех нужных групп, а их в подгруппах много. Лучше было бы указывать родительскую группу и нормально обрабатывать данные из неё самой и из дочерних.
Меня вот сейчас разбирает любопытство как отбираются карточки у супермага в разделе "карточки". Там мы выбираем группу и получаем список артикулов и из вложенных групп тоже. По идее это то что надо.

Завтра днём буду пробовать...
14.02.2012 20:13
OlegON
 
Так like у Андрея тебя чем не устроил?
15.02.2012 05:26
AlexeyF
 
Не то что не устроил, ещё не проверил. Сейчас со срочными вопросами разберусь и начну проверять все идеи, которые были предложены.
22.02.2012 09:58
Mtirt
 
Чем дело закончилось?
22.02.2012 11:41
AlexeyF
 
Дело не закончилось - в прошедшие выходные не успел сесть, надеюсь в эти выходные погоняю тесты.
Часовой пояс GMT +3, время: 12:14.

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