|
Нужна помощь при написании запроса. | ☑ | ||
---|---|---|---|---|
0
memogolik
07.04.15
✎
11:39
|
Смысл запроса таков:
Нужно выбрать минимальное количество документов РТиУ (ссылки), чтобы по заданной номенклатуре общее количество в "штучках" по выбранным документам было меньше или равно заданной. Пытался вот так: ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, СУММА(РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент) КАК Количество ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента И РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка ИМЕЮЩИЕ СУММА(РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент) <= 240001 УПОРЯДОЧИТЬ ПО РеализацияТоваровУслугТовары.Ссылка.Дата УБЫВ Но условие на "Имеющие" почему то вообще не срабатывает. Заранее спасибо за помощь. |
|||
1
vicof
07.04.15
✎
11:54
|
Если не срабатывает, значит сумма количеств меньше 240001
|
|||
2
SeraFim
07.04.15
✎
11:59
|
Правильно задачу сформулируй.
>> по заданной номенклатуре общее количество в "штучках" по выбранным документам было меньше или равно заданной. общее количество суммарно по всем документам или же только в рамках каждого документа? |
|||
3
Dmitrii
гуру
07.04.15
✎
11:59
|
(0) > условие на "Имеющие" не срабатывает.
Что значит "не срабатывает"? В результате запроса есть поля с Количество > 240001 ? |
|||
4
memogolik
07.04.15
✎
12:04
|
||||
5
memogolik
07.04.15
✎
12:05
|
Он как будто не замечает этого условия и выводит все.
|
|||
6
SeraFim
07.04.15
✎
12:06
|
(5) судя по всему, тебе надо таки посчитать среди всех документов.
У тебя стоит группировка по ссылке! Вот и условие срабатывает только в рамках группировок |
|||
7
memogolik
07.04.15
✎
12:07
|
(6) но мне нужно хранить ссылки на документы....
|
|||
8
Sashokk
07.04.15
✎
12:08
|
Судя по этому https://www.dropbox.com/s/k5fg24ikqoq828l/Запрос1.png?dl=0 всё у вас срабатывает.
|
|||
9
Nuobu
07.04.15
✎
12:10
|
||||
10
SeraFim
07.04.15
✎
12:10
|
(7) или крестик снимите, или трусы наденьте
|
|||
11
memogolik
07.04.15
✎
12:12
|
(9) спасибо за ссылки, очень похоже
|
|||
12
Nuobu
07.04.15
✎
12:15
|
(11) ВЫБРАТЬ
РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, СУММА(РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент) КАК Количество, РеализацияТоваровУслугТовары.Ссылка.Дата ПОМЕСТИТЬ ВТДокументы ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента И РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка, РеализацияТоваровУслугТовары.Ссылка.Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТДокументы.Номенклатура, ВТДокументы.Ссылка, СУММА(ВТДокументыДополнительная.Количество) КАК Количество ИЗ ВТДокументы КАК ВТДокументы ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументы КАК ВТДокументыДополнительная ПО ВТДокументы.Дата <= ВТДокументыДополнительная.Дата И ВТДокументы.Номенклатура <= ВТДокументыДополнительная.Номенклатура СГРУППИРОВАТЬ ПО ВТДокументы.Ссылка, ВТДокументы.Номенклатура ИМЕЮЩИЕ СУММА(ВТДокументыДополнительная.Количество) <= 240001 |
|||
13
Nuobu
07.04.15
✎
12:15
|
(12)
ВТДокументы.Номенклатура <= ВТДокументыДополнительная.Номенклатура ВТДокументы.Номенклатура = ВТДокументыДополнительная.Номенклатура |
|||
14
Dmitrii
гуру
07.04.15
✎
12:17
|
(4) (5) Я не увидел ни одной строки, где Количество > 240001. Везде <=.
Так что поздравляю! Ваш запрос работает правильно. |
|||
15
memogolik
07.04.15
✎
12:18
|
(12) Спасибо!
|
|||
16
memogolik
07.04.15
✎
15:27
|
Вот итог, если кому может пригодится:
ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Ссылка КАК Ссылка, СУММА(РеализацияТоваровУслугТовары.Количество * РеализацияТоваровУслугТовары.Коэффициент) КАК Количество, РеализацияТоваровУслугТовары.Ссылка.Дата ПОМЕСТИТЬ ВТДокументы ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.ДоговорКонтрагента = &ДоговорКонтрагента И РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Ссылка, РеализацияТоваровУслугТовары.Ссылка.Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТДокументы.Номенклатура, &Пар1, ВТДокументы.Ссылка, ВТДокументы.Количество, СУММА(ВТДокументыДополнительная.Количество) КАК Количество ПОМЕСТИТЬ ВРЕМ ИЗ ВТДокументы КАК ВТДокументы ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументы КАК ВТДокументыДополнительная ПО ВТДокументы.Дата <= ВТДокументыДополнительная.Дата И ВТДокументы.Номенклатура = ВТДокументыДополнительная.Номенклатура СГРУППИРОВАТЬ ПО ВТДокументы.Ссылка, ВТДокументы.Номенклатура, ВТДокументы.Количество ; ВЫБРАТЬ * ИЗ ( ВЫБРАТЬ Т1.Номенклатура , Т1.Ссылка, Т1.Пар1, Т1.Количество, МИНИМУМ(Т2.Количество) КАК Мин ИЗ ВРЕМ КАК Т1 ЛЕВОЕ СОЕДИНЕНИЕ ВРЕМ Т2 ПО Т1.Номенклатура = Т2.Номенклатура И Т1.Пар1<= Т2.Количество СГРУППИРОВАТЬ ПО Т1.Ссылка, Т1.Номенклатура, Т1.Пар1, Т1.Количество )ВЛОЖ ГДЕ Влож.Количество<=Влож.Мин УПОРЯДОЧИТЬ ПО Влож.Ссылка.Дата Убыв |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |