|
Помогите с алгоритмом для запроса | ☑ | ||
---|---|---|---|---|
0
Albena
02.08.11
✎
10:53
|
пишу запрос для УТ на 8.1, использую построитель отчета
смысл запроса такой: вывести номенклатуру с группировкой по складам, по которой не было расхода в течение года и полугода вот запрос ВЫБРАТЬ 1 КАК НетРасходаГод, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Склад, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачДата1, &КонДата, , , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИМЕЮЩИЕ СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) > 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) = 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) > 0 ОБЪЕДИНИТЬ ВЫБРАТЬ 0, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Склад, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачДата2, &КонДата, , , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИМЕЮЩИЕ СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) > 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) = 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) > 0 подскажите, как сделать так, чтобы в результат запроса за полгода (после ОБЪЕДИНИТЬ) не попала номенклатура с группировкой по складам, по которой не было движений год (т.е. та, что отобралась в первой части запроса)? |
|||
1
Grusswelle
02.08.11
✎
10:53
|
(0) Без фотки не взлетит!
|
|||
2
Albena
02.08.11
✎
10:55
|
если по номенклатуре не было движений год, значит не было движений и полгода, но такая номенклатура должна попасть только в таблицу, где номенклатура без движений год
|
|||
3
Scooter
02.08.11
✎
10:56
|
есть null
|
|||
4
Albena
02.08.11
✎
10:56
|
можно ли сделать отбор сразу в запросе?
|
|||
5
Albena
02.08.11
✎
10:57
|
(3) не поняла, где проверку на null делать?
|
|||
6
Scooter
02.08.11
✎
10:58
|
(5)в запросе
|
|||
7
Albena
02.08.11
✎
10:58
|
(6) что в запросе-то понятно, что на null проверять?
|
|||
8
vmv
02.08.11
✎
11:00
|
пока что Фото = null дает неоптимальный запрос
|
|||
9
Albena
02.08.11
✎
11:01
|
нужно, чтобы во вторую часть запроса вошла только та номенклатура с группировкой по складам. которая не вошла в первую часть запроса
|
|||
10
Axel2009
02.08.11
✎
11:01
|
ВЫБРАТЬ СУММА(НетРасходаГод), Номенклатура, Склад, КоличествоНачальныйОстаток, КоличествоКонечныйОстаток,
СтоимостьНачальныйОстаток, СтоимостьКонечныйОстаток ИЗ ( ВЫБРАТЬ 1 КАК НетРасходаГод, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Склад, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачДата1, &КонДата, , , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИМЕЮЩИЕ СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) > 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) = 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) > 0 ОБЪЕДИНИТЬ ВЫБРАТЬ 0, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Склад, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток), СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачДата2, &КонДата, , , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Склад, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура ИМЕЮЩИЕ СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) > 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) = 0 И СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) > 0) КАК ОбщаяТаблица СГРУППИРОВАТЬ ПО Номенклатура, Склад, КоличествоНачальныйОстаток, КоличествоКонечныйОстаток, СтоимостьНачальныйОстаток, СтоимостьКонечныйОстаток |
|||
11
Scooter
02.08.11
✎
11:03
|
(9)а ты уверена что у тебя запрос правильный?
|
|||
12
Albena
02.08.11
✎
11:03
|
(10) спасибо, но тогда потеряется информация, к какой группе товаров принадлежит номенклатура: без расхода год или полгода
|
|||
13
Axel2009
02.08.11
✎
11:05
|
(12) как потеряется? СУММА(НетРасходаГод) если покажет 1, значит год, если 0, значит полгода
|
|||
14
Albena
02.08.11
✎
11:13
|
(13)большое спасибо, смысл поняла
|
|||
15
ssh2006
02.08.11
✎
11:29
|
Если в интервале с &НачДата1 по &НачДата2 был приход на тот-же склад, то в результате запроса будут 2 строки по одним и тем-же номенклатуре/складу из-за группировки по начальному остатку .
|
|||
16
Axel2009
02.08.11
✎
11:57
|
(15) значит достаточно выбрать МАКСИМУМ из остатков. и сгруппировать только по номенклатуре
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |