|
Null в запросе | ☑ | ||
---|---|---|---|---|
0
Mikhail2014
26.11.15
✎
16:44
|
Всем привет!
Делаю вот такой запрос в Ут (11.1.5.16). ВЫБРАТЬ | СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, | СвободныеОстаткиОстатки.Склад КАК Склад, | СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток, | ВложенныйЗапрос.КоличествоОборот КАК КоличествоОборот, | СвободныеОстаткиОстатки.ВНаличииОстаток - ВложенныйЗапрос.КоличествоОборот КАК ДоступноПоКвоте | ИЗ | РегистрНакопления.СвободныеОстатки.Остатки(&ДатаНачала, ) КАК СвободныеОстаткиОстатки | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура, | ВыручкаИСебестоимостьПродажОбороты.Подразделение КАК Подразделение, | ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад, | ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК КоличествоОборот | ИЗ | РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ВыручкаИСебестоимостьПродажОбороты | ГДЕ | ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура | И ВыручкаИСебестоимостьПродажОбороты.Склад В(&Склады)) КАК ВложенныйЗапрос | ПО СвободныеОстаткиОстатки.Склад = ВложенныйЗапрос.Склад | ГДЕ | СвободныеОстаткиОстатки.Номенклатура = &Номенклатура | И СвободныеОстаткиОстатки.Склад В(&Склады) Смысл - получить остатки товара на начало дня и вычесть колчество проданного за этот день. Все рабоатет, но в поле СвободныеОстаткиОстатки.ВНаличииОстаток - ВложенныйЗапрос.КоличествоОборот КАК ДоступноПоКвоте всегда получается null, независимо от значений вычитаемого и уменьшаемого... В чем может быть дело? |
|||
1
Лефмихалыч
26.11.15
✎
16:46
|
>Смысл - получить остатки товара на начало дня и вычесть колчество проданного за этот день.
какой смысл в этом смысле? Почему сразу не получить остатки на конец дня? |
|||
2
anatoly
26.11.15
✎
16:46
|
1. КоличествоОборот возьми в ЕСТЬНУЛЛ
2. про параметры виртуальных таблиц не слышал? |
|||
3
su_mai
26.11.15
✎
16:47
|
(0) Арифметические операции с Null всегда дают Null. Для борьбы с Null применяйте функцию ЕстьNull(<Запрос.Поле>, 0)
|
|||
4
Mikhail2014
26.11.15
✎
16:49
|
(1) У каждого подразделения есть лимит = остаток товара на начало дня - к-во уже проданного этим подразделением за этот день, больше они продать не могут. Такая задача.)
|
|||
5
su_mai
26.11.15
✎
16:49
|
(0) Соединение с вложенный запросом не благословляется. Вложенный запрос перенести в пакетный запрос (и во врем. таблицу), наложить все необходимые условия, а соединяться с данными временной таблицы.
|
|||
6
Гёдза
26.11.15
✎
16:58
|
(1) Расход - это не только продажа. А на конечный остаток еще приход влияет и возврат
|
|||
7
su_mai
26.11.15
✎
17:01
|
+(5) Все условия из ГДЕ в параметры виртуальных таблиц
|
|||
8
su_mai
26.11.15
✎
17:02
|
ВЫБРАТЬ
ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура, ВыручкаИСебестоимостьПродажОбороты.Подразделение КАК Подразделение, ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад, ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот КАК КоличествоОборот ПОМЕСТИТЬ ДанныеОбороты ИЗ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНачала, &ДатаОкончания, , ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура И ВыручкаИСебестоимостьПродажОбороты.Склад В(&Склады)) КАК ВыручкаИСебестоимостьПродажОбороты ; ВЫБРАТЬ СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, СвободныеОстаткиОстатки.Склад КАК Склад, СвободныеОстаткиОстатки.ВНаличииОстаток КАК ВНаличииОстаток, ДанныеОбороты.КоличествоОборот КАК КоличествоОборот, ЕстьNull(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕстьNull(ДанныеОбороты.КоличествоОборот, 0) КАК ДоступноПоКвоте ИЗ РегистрНакопления.СвободныеОстатки.Остатки(&ДатаНачала, СвободныеОстаткиОстатки.Номенклатура = &Номенклатура И СвободныеОстаткиОстатки.Склад В(&Склады)) КАК СвободныеОстаткиОстатки ЛЕВОЕ СОЕДИНЕНИЕ ДанныеОбороты ПО СвободныеОстаткиОстатки.Склад = ДанныеОбороты.Склад |
|||
9
Mikhail2014
26.11.15
✎
17:12
|
(8) Спасибо, сейчас буду пробовать)
|
|||
10
su_mai
26.11.15
✎
17:19
|
(9) Я не отлаживал, там имена полей в условиях вирт таб другие
|
|||
11
Mikhail2014
26.11.15
✎
17:32
|
(10) Да, с виртуальными таблицами все работает, спасибо :)
|
|||
12
aleks_default
26.11.15
✎
17:37
|
Неужели никто не заметил что соединение вложенного запроса со свободным остатком только по складу? В (0) полный бред.
|
|||
13
Mikhail2014
26.11.15
✎
17:57
|
(12) А как надо?
|
|||
14
aleks_default
26.11.15
✎
17:59
|
(13)Не поверишь, надо и по номенклатуре тоже
|
|||
15
Mikhail2014
26.11.15
✎
18:10
|
(14) Поробовал, так не работает, тоже всегда null в результате
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |