|
Как доработать запрос | ☑ | ||
---|---|---|---|---|
0
VadimBahteev
01.02.13
✎
11:41
|
Есть вот такой запрос, как мне его доработать что бы КоличествоОстаток, проставлялось только по одной ЛЮБОЙ! строке номенклатуры, а не по каждой как сейчас?
ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, ХозрасчетныйОстатки.КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура.Наименование = ХозрасчетныйОстатки.Субконто1.Наименование И схПродажиОбороты.ДокументПродажи.Склад.Наименование = ХозрасчетныйОстатки.Субконто3.Наименование ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, схПродажиОбороты.КоличествоОборот, ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
|||
1
VadimBahteev
01.02.13
✎
13:04
|
Есть варианты?
|
|||
2
salvator
01.02.13
✎
13:05
|
Че значит любой?
|
|||
3
VadimBahteev
01.02.13
✎
13:09
|
Ну вот выполни в консоле запросов, там получится что каждой строчке стоит остаток, мне надо что бы тольок в одной, любой по различным номенклатурам
|
|||
4
palpetrovich
01.02.13
✎
13:10
|
а это вообще работает?
СГРУППИРОВАТЬ ПО схПродажиОбороты.КоличествоОборот |
|||
5
salvator
01.02.13
✎
13:12
|
(3) Я знаю. Я не понимаю слово "любой". Понимаю, "первой,"второй" и т.д.
|
|||
6
VadimBahteev
01.02.13
✎
13:12
|
Да
|
|||
7
VadimBahteev
01.02.13
✎
13:13
|
ну хорошо как сделать в первой строке, по этой номенклатуре. в остальных пусто, в след номенклатуре опять в первой строке продажи
|
|||
8
Галахад
гуру
01.02.13
✎
13:13
|
Как-то так, наверное:
ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, 0 ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты объединить все ВЫБРАТЬ ХозрасчетныйОстатки.Номенклатура КАК Номенклатура, ХозрасчетныйОстатки.Контрагент, 0, СУММА(ХозрасчетныйОстатки.КоличествоОборот) КАК КоличествоОборот РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки |
|||
9
VadimBahteev
01.02.13
✎
13:20
|
Совершенно два разных регистра
|
|||
10
VadimBahteev
01.02.13
✎
13:20
|
там нет одинаковых полей
|
|||
11
Галахад
гуру
01.02.13
✎
13:22
|
А по каким ты соединяешь?
|
|||
12
VadimBahteev
01.02.13
✎
13:24
|
(11) я про объединение
|
|||
13
Classic
01.02.13
✎
13:28
|
(0)
Что это? |
|||
14
acsent
01.02.13
✎
13:29
|
(0) Вот это ПИ..ЗДЕЦ
|
|||
15
Classic
01.02.13
✎
13:32
|
(10)
И чё? ВЫБРАТЬ ПервыйРегистр.ПолеСоединия, ПервыйРегистр.НужноеПоле1, ПервыйРегистр.НужноеПоле2, ......... NULL, NULL ИЗ ПервыйРегистр ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВторойРегистр.ПолеСоединения, NULL, NULL, .......... ВторойРегистр.Поле1, ВторойРегистр.Поле2 |
|||
16
sapphire
01.02.13
✎
13:33
|
(14) Впечатлил тебя ТС, да?
|
|||
17
sapphire
01.02.13
✎
13:34
|
ВЫБРАТЬ
схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, SUM(ISNULL(ХозрасчетныйОстатки.КоличествоОстаток,0)) КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура.Наименование = ХозрасчетныйОстатки.Субконто1.Наименование И схПродажиОбороты.ДокументПродажи.Склад.Наименование = ХозрасчетныйОстатки.Субконто3.Наименование ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, // схПродажиОбороты.КоличествоОборот, // ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
|||
18
YuPetr
01.02.13
✎
13:38
|
(0) Убери из группировок поля: схПродажиОбороты.КоличествоОборот,
ХозрасчетныйОстатки.КоличествоОстаток а по полю ХозрасчетныйОстатки.КоличествоОстаток сделай сумму |
|||
19
sapphire
01.02.13
✎
13:59
|
(18) , а (17) мало?
|
|||
20
VadimBahteev
01.02.13
✎
14:04
|
Всяко перепробовал, не работает, наверно утопия изначально
|
|||
21
sapphire
01.02.13
✎
14:11
|
(20) А ну, конечно, конечно :)
ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, SUM(ISNULL(ХозрасчетныйОстатки.КоличествоОстаток,0)) КоличествоОстаток ИЗ РегистрНакопления.схПродажи.Обороты(&Дата1, &Дата2, , ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , , ) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура = ХозрасчетныйОстатки.Субконто1 И схПродажиОбороты.ДокументПродажи.Склад = ХозрасчетныйОстатки.Субконто3 ГДЕ схПродажиОбороты.Организация = &Организация И схПродажиОбороты.ДокументПродажи.Склад = &Склад // И ХозрасчетныйОстатки.Субконто3 = &Склад СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.Контрагент, // схПродажиОбороты.КоличествоОборот, // ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
|||
22
sapphire
01.02.13
✎
14:16
|
И исчо можно часть отборов в параметры виртуально таблицы засунуть :)))
|
|||
23
VadimBahteev
01.02.13
✎
14:30
|
(22) Спасибо за старание, не реально не то что надо:)
|
|||
24
Baron Samedi
01.02.13
✎
14:34
|
(20) соединить с подзапросом
левеое соединение ( выбрать Номенклатура, МАКСИМУМ(Контрагент) ) ИЗ <оттуда же> ) как ЛюбойКонтрагент по ЛюбойКонтрагент.Номенклатура = схПродажиОбороты.Номенклатура и ЛюбойКонтрагент.Контрагент = схПродажиОбороты.Контрагент Остаток выводить так: ВЫБОР КОГДА ЛюбойКонтрагент.Контрагент НЕ ЕСТЬ NULL ТОГДА ХозрасчетныйОстатки.КоличествоОстаток КОНЕЦ |
|||
25
VadimBahteev
01.02.13
✎
14:44
|
(24) не понял что то
|
|||
26
Baron Samedi
01.02.13
✎
19:32
|
(25)
ВЫБРАТЬ схПродажиОбороты.Номенклатура КАК Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец,//схПродажиОбороты.Контрагент, СУММА(схПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(схПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, ХозрасчетныйОстатки.КоличествоОстаток, ВЫБОР КОГДА КонтрагентПодходит.ТакиДа ТОГДА ХозрасчетныйОстатки.КоличествоОстаток КОНЕЦ как ИногдаОстаток ИЗ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ДоговорКонтрагента.Организация = &Организация //схПродажиОбороты.Организация = &Организация И ДокументПродажи.Склад = &Склад ) КАК схПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, , &МассивВидыСубконтоНоменклатураИСклады, Субконто2 = &Склад) КАК ХозрасчетныйОстатки ПО схПродажиОбороты.Номенклатура = ХозрасчетныйОстатки.Субконто1 И схПродажиОбороты.ДокументПродажи.Склад = ХозрасчетныйОстатки.Субконто2 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Истина как ТакиДа) как КонтрагентПодходит ПО ( схПродажиОбороты.Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец //схПродажиОбороты.Контрагент ) В ( ВЫБРАТЬ Номенклатура, Максимум(ДоговорКонтрагента.Владелец) //Максимум(Конрагент) ИЗ РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ДоговорКонтрагента.Организация = &Организация //схПродажиОбороты.Организация = &Организация И ДокументПродажи.Склад = &Склад ) СГРУППИРОВАТЬ ПО Номенклатура ) СГРУППИРОВАТЬ ПО схПродажиОбороты.Номенклатура, схПродажиОбороты.ДоговорКонтрагента.Владелец,//схПродажиОбороты.Контрагент, КонтрагентПодходит.ТакиДа, ХозрасчетныйОстатки.КоличествоОстаток УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
|||
27
Baron Samedi
01.02.13
✎
19:36
|
(26)
- Чтобы проверить на своей базе заменил регистр схПродажи на Продажи. Не сочтите за труд поменять обратно - пользуйте фильтры в параметрах виртуальных таблиц, и будет счастье - пользуйте массив видов субконто в параметрах вирт.таблиц регистров бухгалтерии. С номерами субконто ясности и скорости будет больше в 10 раз. P.S. Надежнее и прямее делать через ОБЪЕДИНИТЬ ВСЕ, но тогда в строке с бух. остатком не будет оборота по продажам. Как и контрагента, что правильно. Не делится остаток на складе по покупателям. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |