|
вопрос по запросу | ☑ | ||
---|---|---|---|---|
0
gosn1ck
15.05.12
✎
11:39
|
надо найти документы РТиУ в которых номенклатура принадлежит одной и групп.
а именно надо найти РТиУ в которых есть хотя бы 1 позиция из группы "ручки" и хотя бы 1 позиция из группы "карандаши", причем если есть только ручки или только карандаши то эти документы не должны попадать в отчет. а еще сложность в том, что количество групп выбирается пользователем от 1го до 5ти. у кого есть какие-нибудь соображения? |
|||
1
mikecool
15.05.12
✎
11:41
|
надо писать запрос!
|
|||
2
mikecool
15.05.12
✎
11:41
|
напишу за 500р
|
|||
3
gosn1ck
15.05.12
✎
11:43
|
блин, клоунада понеслались раньше чем обычно
|
|||
4
mikecool
15.05.12
✎
11:47
|
ну раз ты все разгадал - я удаляюсь
|
|||
5
Азазелло
15.05.12
✎
11:50
|
По количеству выбранных пользователем групп прилепить к основной таблице документа левые джойны таблицы номенклатуры документа с условием что-то типа
<Имя_ОсновнойТаблицы>.Ссылка = <Имя_Таблицы_Номенклатуры_i>.Ссылка И <Имя_Таблицы_Номенклатуры_i>.Номенклатура В ИЕРАРХИИ(&ВыбраннаяГруппа_i) а дальле проверять на NULL Имя_Таблицы_Номенклатуры_i.Ссылка |
|||
6
Жан Пердежон
15.05.12
✎
11:50
|
(0) а что ты уже сам сделал для решения этой неимоверно сложной задачи?
|
|||
7
echo77
15.05.12
✎
11:50
|
Запрос в цикле по каждой из групп? Это неправильно, но работать будет
|
|||
8
gosn1ck
15.05.12
✎
11:52
|
(6) я сделал вот так
ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыЧека.Ссылка КАК Чек, ТоварыЧека.Продавец, ТоварыЧека.Ссылка.Магазин КАК Салон, СУММА(ТоварыЧека.Количество) КАК КоличествоПервойГруппы ПОМЕСТИТЬ ЧекиСПервойГруппой ИЗ Документ.ЧекККМ.Товары КАК ТоварыЧека ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменГруппа1 ПО ТоварыЧека.Номенклатура = НоменГруппа1.Ссылка ГДЕ ТоварыЧека.Ссылка.Проведен И ТоварыЧека.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон И НоменГруппа1.НоменклатурнаяГруппа = &НоменклатурнаяГруппаПервая СГРУППИРОВАТЬ ПО ТоварыЧека.Ссылка, ТоварыЧека.Продавец, ТоварыЧека.Ссылка.Магазин ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыЧека.Ссылка КАК Чек, ТоварыЧека.Продавец, ТоварыЧека.Ссылка.Магазин КАК Салон, СУММА(ТоварыЧека.Количество) КАК КоличествоВторойГруппы ПОМЕСТИТЬ ЧекиСоВторойГруппой ИЗ Документ.ЧекККМ.Товары КАК ТоварыЧека ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменГруппа2 ПО ТоварыЧека.Номенклатура = НоменГруппа2.Ссылка ГДЕ ТоварыЧека.Ссылка.Проведен И ТоварыЧека.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон И НоменГруппа2.НоменклатурнаяГруппа = &НоменклатурнаяГруппаВторая СГРУППИРОВАТЬ ПО ТоварыЧека.Ссылка, ТоварыЧека.Продавец, ТоварыЧека.Ссылка.Магазин ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЧекиСоВторойГруппой.Чек КАК КоличествоЧеков, ЧекиСоВторойГруппой.Продавец, ЧекиСоВторойГруппой.Салон ИЗ ЧекиСоВторойГруппой КАК ЧекиСоВторойГруппой ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЧекиСПервойГруппой КАК ЧекиСПервойГруппой ПО ЧекиСоВторойГруппой.Чек = ЧекиСПервойГруппой.Чек но оказалось что групп может быть несколько |
|||
9
mikecool
15.05.12
✎
11:56
|
а меня еще клоуном называл, двоечник
|
|||
10
gosn1ck
15.05.12
✎
11:58
|
(5) сказано, что если в документе есть только "карандаши" то этот док выводить не нужно.
(9) прости, готов выслушать твоё решение задачи |
|||
11
mikecool
15.05.12
✎
11:58
|
+9 открой для себя В ИЕРАРХИИ и параметр - список значений к примеру
|
|||
12
mikecool
15.05.12
✎
11:59
|
+11 или просто В (&Список)
|
|||
13
gosn1ck
15.05.12
✎
11:59
|
(11) если я в списке укажу 2 группы, то в результат получу док в котором может быть только 1 номенклатура из 1ой группы, а мне надо только из 2х, 3х и т.д.
|
|||
14
mikecool
15.05.12
✎
12:03
|
(13) построитель отчета или скд + их параметры тогда в руки
|
|||
15
mikecool
15.05.12
✎
12:03
|
иначе - собирать текст запроса динамически
|
|||
16
gosn1ck
15.05.12
✎
12:06
|
(14) у меня скд. какие параметры брать в руки?
|
|||
17
Азазелло
15.05.12
✎
12:07
|
(10) сказано, а дальле проверять на NULL Имя_Таблицы_Номенклатуры_i.Ссылка и в зависимости от результата включать/исключать строки из результата запроса. делается с помощью ГДЕ
|
|||
18
mikecool
15.05.12
✎
12:08
|
а теперь я подумал - а ведь запрос динамически придется собирать )
ибо даже построитель будет сравнивать со всем списком )) |
|||
19
gosn1ck
15.05.12
✎
12:14
|
(17) если ты про это
ВЫБРАТЬ РАЗРЕШЕННЫЕ ТоварыЧека.Ссылка КАК Чек, ТоварыЧека.Продавец, ТоварыЧека.Ссылка.Магазин КАК Салон ИЗ Документ.ЧекККМ.Товары КАК ТоварыЧека ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменГруппа1 ПО ТоварыЧека.Номенклатура = НоменГруппа1.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменГруппа2 ПО ТоварыЧека.Номенклатура = НоменГруппа2.Ссылка ГДЕ ТоварыЧека.Ссылка.Проведен И ТоварыЧека.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон И НоменГруппа1.НоменклатурнаяГруппа = &НоменклатурнаяГруппаПервая И НоменГруппа2.НоменклатурнаяГруппа = &НоменклатурнаяГруппаВторая то результат будет пустой. если условие делать ИЛИ по группам, то опять попадёт не то что нужно (только карандаши из требуемых карандаши+ручки) |
|||
20
gosn1ck
15.05.12
✎
12:19
|
(18) как димамически?
|
|||
21
mikecool
15.05.12
✎
12:21
|
(20) пока чтото там
текстзапроса = текстзапроса + "что то здесь" |
|||
22
mikecool
15.05.12
✎
12:22
|
потому как надо получить типа
выбрать поместить НГ1 из номенклатура где НГ = ПараметрНГ1; ... выбрать из документы внутреннее соединение НГ1 по ... |
|||
23
gosn1ck
15.05.12
✎
12:31
|
(22) держи пятихатку
|
|||
24
gosn1ck
15.05.12
✎
15:27
|
сделал вот так
ВЫБРАТЬ РАЗРЕШЕННЫЕ НоменклатурныеГруппы.Ссылка КАК Группа ПОМЕСТИТЬ Группы ИЗ Справочник.НоменклатурныеГруппы КАК НоменклатурныеГруппы ГДЕ НоменклатурныеГруппы.Ссылка В(&СписокГрупп) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Группы.Группа) КАК Количество ПОМЕСТИТЬ КоличествоГрупп ИЗ Группы КАК Группы ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Чеки.Ссылка, Группы.Группа ПОМЕСТИТЬ ЧекиСГруппой ИЗ Документ.ЧекККМ.Товары КАК Чеки ВНУТРЕННЕЕ СОЕДИНЕНИЕ Группы КАК Группы ПО Чеки.Номенклатура.НоменклатурнаяГруппа = Группы.Группа ГДЕ Чеки.Ссылка.Проведен И Чеки.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон СГРУППИРОВАТЬ ПО Группы.Группа, Чеки.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ЧекиСГруппой.Ссылка КАК Чек ИЗ ЧекиСГруппой КАК ЧекиСГруппой ЛЕВОЕ СОЕДИНЕНИЕ КоличествоГрупп КАК КоличествоГрупп ПО (ИСТИНА) СГРУППИРОВАТЬ ПО ЧекиСГруппой.Ссылка, КоличествоГрупп.Количество ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧекиСГруппой.Группа) = КоличествоГрупп.Количество вроде работает |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |