|
функция ЕСТЬNULL при соединении нескольких таблиц | ☑ | ||
---|---|---|---|---|
0
s-n-a-y
03.04.14
✎
09:13
|
есть запрос
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстатки.Контрагент, ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток * -1 КАК СуммаВзаиморасчетовОстаток ПОМЕСТИТЬ Вт_Остаток ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&Дата1, ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)) КАК ВзаиморасчетыСКонтрагентамиОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстатки.Контрагент, ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток * -1 КАК СуммаВзаиморасчетовОстаток ПОМЕСТИТЬ Вт_Остаток_Нач_года ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(НАЧАЛОПЕРИОДА(&Дата1, ГОД), ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)) КАК ВзаиморасчетыСКонтрагентамиОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.Контрагент, Вт_Остаток.Контрагент) КАК Контрагент, ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход, 0) КАК СуммаВзаиморасчетовПриход, ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход, 0) КАК СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОбороты.Регистратор, ЕСТЬNULL(Вт_Остаток.СуммаВзаиморасчетовОстаток, 0) КАК СуммаВзаиморасчетовОстаток, ЕСТЬNULL(Вт_Остаток_Нач_года.СуммаВзаиморасчетовОстаток, 0) КАК СуммаВзаиморасчетовОстаток_Нач_года ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&Дата1, &Дата2, Авто, ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)) КАК ВзаиморасчетыСКонтрагентамиОбороты ПОЛНОЕ СОЕДИНЕНИЕ Вт_Остаток КАК Вт_Остаток ПО ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = Вт_Остаток.Контрагент ПОЛНОЕ СОЕДИНЕНИЕ Вт_Остаток_Нач_года КАК Вт_Остаток_Нач_года ПО ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = Вт_Остаток_Нач_года.Контрагент ГДЕ ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОбороты.Регистратор) <> ТИП(Документ.КорректировкаРеализации) И ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОбороты.Регистратор) <> ТИП(Документ.КорректировкаДолга) УПОРЯДОЧИТЬ ПО Контрагент, ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ИТОГИ Контрагент КАК Контрагент, СУММА(СуммаВзаиморасчетовПриход), СУММА(СуммаВзаиморасчетовРасход), МАКСИМУМ(СуммаВзаиморасчетовОстаток) ПО Контрагент АВТОУПОРЯДОЧИВАНИЕ Объясните, пожалуйста, почему в поледней колонке результирующей таблицы (Вт_Остаток_Нач_года.СуммаВзаиморасчетовОстаток) чередуются NULL и 0, хотя вроде бы все должны быть 0? |
|||
1
Wobland
03.04.14
✎
09:15
|
а ты уже перестал пить коньяк по утрам?
//не чередуются они |
|||
2
s-n-a-y
03.04.14
✎
09:17
|
у меня в консоли запросов в поледней колонке чередуются NULL и 0
|
|||
3
Wobland
03.04.14
✎
09:17
|
(2) не убедил. скрин давай
|
|||
4
Wobland
03.04.14
✎
09:17
|
сторно. этоги не приметил
|
|||
5
s-n-a-y
03.04.14
✎
09:20
|
(3), скрин дать не могу значения в консоли отображаются только по двойному щелчку в диалоговом окне
|
|||
6
s-n-a-y
03.04.14
✎
09:21
|
(4), как на результат влияют итоги ?
|
|||
7
s-n-a-y
03.04.14
✎
09:23
|
нужно применить естьnull к итогам тоже?
|
|||
8
Wobland
03.04.14
✎
09:23
|
(6) они делают дерево. а когда непонятно, что делать с полем, появляется магический нулл
|
|||
9
ИС-2
naïve
03.04.14
✎
09:26
|
я смущает:
ИТОГИ Контрагент КАК Контрагент, СУММА(СуммаВзаиморасчетовПриход), СУММА(СуммаВзаиморасчетовРасход), МАКСИМУМ(СуммаВзаиморасчетовОстаток) ПО Контрагент думаю должно быть ИТОГИ СУММА(СуммаВзаиморасчетовПриход), СУММА(СуммаВзаиморасчетовРасход), МАКСИМУМ(СуммаВзаиморасчетовОстаток) ПО Контрагент |
|||
10
saaken
03.04.14
✎
09:27
|
(0) полное соединение ни о чем не говорит?
|
|||
11
s-n-a-y
03.04.14
✎
09:27
|
(8), я правильно понимаю что итоги добавляют строки в результат. И в этих строках у меня NULL?
|
|||
12
s-n-a-y
03.04.14
✎
09:28
|
(9), не помогло
|
|||
13
Ёпрст
03.04.14
✎
09:28
|
(0) выкини полное соединение везде, делай через union all... наслаждайся
|
|||
14
Wobland
03.04.14
✎
09:29
|
(11) Предложение ИТОГИ ... ПО позволяет определить, расчет каких итогов необходим в запросе. При расчете итогов вычисляются значения агрегатных функций по выборкам с одинаковыми значениями полей – контрольных точек. Итоги добавляются в результат запроса как итоговые строки.
|
|||
15
s-n-a-y
03.04.14
✎
09:29
|
(10), ко всем числовым полям в результирующей таблице применил естьnull
|
|||
16
saaken
03.04.14
✎
09:34
|
(15) а если все таки убрать одну галочку?
|
|||
17
s-n-a-y
03.04.14
✎
09:36
|
(16), делал так (левое соединение)
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&Дата1, &Дата2, Авто, ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)) КАК ВзаиморасчетыСКонтрагентамиОбороты ПОЛНОЕ СОЕДИНЕНИЕ Вт_Остаток КАК Вт_Остаток ПО ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = Вт_Остаток.Контрагент ЛЕВОЕ СОЕДИНЕНИЕ Вт_Остаток_Нач_года КАК Вт_Остаток_Нач_года ПО ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = Вт_Остаток_Нач_года.Контрагент тоже не помогло |
|||
18
Wobland
03.04.14
✎
09:38
|
да заставь консоль показать тебе дерево, может, так дойдёт
|
|||
19
s-n-a-y
03.04.14
✎
09:38
|
у меня Null появляется в тех строчках таблицы, в которых вычисляются итоги. Причем в предпоследней колонке везде 0, а в последней чередуются null и 0.
|
|||
20
s-n-a-y
03.04.14
✎
09:40
|
(18), см. (17)
|
|||
21
s-n-a-y
03.04.14
✎
09:40
|
(18), перепутал см. (19)
|
|||
22
Wobland
03.04.14
✎
09:41
|
(21) что там?
|
|||
23
Wobland
03.04.14
✎
09:42
|
как считать итоги по крайнему полю? запрос знает?
|
|||
24
s-n-a-y
03.04.14
✎
09:43
|
(23), понял.
|
|||
25
Wobland
03.04.14
✎
09:44
|
не за что
|
|||
26
m-serg74
03.04.14
✎
09:45
|
(24) а что вообще ОстаткиОбороты не взять таблицу?
|
|||
27
m-serg74
03.04.14
✎
09:45
|
+(26) или как в (13)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |