|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
егаис
16.11.11
✎
16:38
|
Есть два ТЧ одного документа. В обоих ТЧ есть поле количество
как запросом получить разницу по стобцу НомерСтроки. Аналитика в двух таблицах одинаковая(в одной факт, в другой загруженные данные) ВЫБРАТЬ ПоступлениеТоваровУслугТовары.НомерСтроки, СУММА(ПоступлениеТоваровУслугТовары.КоличествоУпаковок) КАК КоличествоУпаковок, СУММА(ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.КоличествоУпаковок) КАК КоличествоУпаковок1 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровУслугТоварыПоДаннымПоставщика ПО ПоступлениеТоваровУслугТовары.Номенклатура = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.Номенклатура ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.НомерСтроки Понимаю что запрос косячный, потому что в случае расхождения количество по факту удваивается... |
|||
1
егаис
16.11.11
✎
16:40
|
объединять два запроса в таком случае или можно как-то одним запросом решать?
|
|||
2
Лефмихалыч
16.11.11
✎
16:41
|
что есть "получить разницу по стобцу НомерСтроки"?
|
|||
3
Лефмихалыч
16.11.11
✎
16:42
|
а если номенклатура одинаковая, но в разных строках?
|
|||
4
егаис
16.11.11
✎
16:42
|
тхм, получить разницу по количеству с группировкой по колонке номерстроки
Вариант - группировать по количеству из таблицы факта, но, имхоЮ, некрасиво... |
|||
5
егаис
16.11.11
✎
16:42
|
(3) запрет на уровне кода, приход только по загрузке и сканированию по факту
|
|||
6
Man4kin
16.11.11
✎
16:44
|
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.НомерСтроки, СУММА(ПоступлениеТоваровУслугТовары.КоличествоУпаковок-ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.КоличествоУпаковок) КАК Разница ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровУслугТоварыПоДаннымПоставщика ПО ПоступлениеТоваровУслугТовары.НомерСтроки = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.номерСтроки И ПоступлениеТоваровУслугТоварыПоДаннымПоставщика ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.Ссылка ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.НомерСтроки |
|||
7
luckyluke
16.11.11
✎
16:44
|
(0) а почему нет ни отбора ни соединения по ссылке с таблицей Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика ?
|
|||
8
Man4kin
16.11.11
✎
16:44
|
если я правильно понял конечно
|
|||
9
Лефмихалыч
16.11.11
✎
16:44
|
(5) ну, так и соединяй по номеру строки, зачем тебе аналитика тогда?
Соединение полное, сумма такая СУММА(ЕстьNULL(Лево,0)-ЕстьNULL(Право,0)) |
|||
10
Лефмихалыч
16.11.11
✎
16:45
|
хотя, раз запрет на уровне кода. то и внутреннее сойдет и тогда ЕстьNULL() не надо
|
|||
11
F13
16.11.11
✎
16:45
|
Таблицы переименовать по вкусу
ВЫБРАТЬ ВложенныйЗапрос.НомерСтроки, СУММА(ВложенныйЗапрос.Количество) КАК Количество ИЗ (ВЫБРАТЬ ПоступлениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки, ПоступлениеТоваровУслугТовары.Количество КАК Количество ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ПоступлениеТоваровУслугТовары.НомерСтроки, ПоступлениеТоваровУслугТовары.Количество * -1 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.НомерСтроки |
|||
12
Man4kin
16.11.11
✎
16:46
|
тьфу, соединение неправильно написал
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровУслугТоварыПоДаннымПоставщика ПО ПоступлениеТоваровУслугТовары.НомерСтроки = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.номерСтроки И ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.Ссылка |
|||
13
Михаил Козлов
16.11.11
✎
16:46
|
Сгруппировать в каждой ТЧ по номенклатуре (с пересчетом в базовые) и соединить 2 таблицы (наверное полным соединением).
|
|||
14
егаис
16.11.11
✎
16:48
|
не работает!
"ВЫБРАТЬ РАЗЛИЧНЫЕ | СУММА(ПоступлениеТоваровУслугТовары.КоличествоУпаковок-ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.КоличествоУпаковок) КАК КоличествоРазница, | ПоступлениеТоваровУслугТовары.НомерСтроки |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ТоварыПоДаннымПоставщика КАК ПоступлениеТоваровУслугТоварыПоДаннымПоставщика | ПО ПоступлениеТоваровУслугТовары.Номенклатура = ПоступлениеТоваровУслугТоварыПоДаннымПоставщика.Номенклатура |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслугТовары.НомерСтроки"; пример комп, факт 5, док 4 запрос выдает факт 10 |
|||
15
Vadik_62
16.11.11
✎
16:48
|
>>как запросом получить разницу по стобцу НомерСтроки
Бред какой-то.. Изъясняйся доступней |
|||
16
Лефмихалыч
16.11.11
✎
16:53
|
(14) видимо это потому, что твой контроль на уровне кода обосрался
|
|||
17
егаис
16.11.11
✎
16:54
|
(11) спасибо, помогло
(16) нет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |