|
Запрос с полным соединением | ☑ | ||
---|---|---|---|---|
0
mihalich979
06.07.15
✎
17:50
|
Вот делаю запрос
Выборка.Текст = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.Счет.КодБыстрогоВыбора, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК Кол2, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК Кол8, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК Кол6, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК Кол4, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток КАК Кол3, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстаток КАК Кол9, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт КАК Кол7, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт КАК Кол5, | ХозрасчетныйОстаткиИОбороты1.Период КАК Период1, | ХозрасчетныйОстаткиИОбороты1.Счет.КодБыстрогоВыбора КАК СчетКодБыстрогоВыбора1, | ХозрасчетныйОстаткиИОбороты1.СуммаНачальныйОстаток КАК Кол10, | ХозрасчетныйОстаткиИОбороты1.СуммаКонечныйОстаток КАК Кол13, | ХозрасчетныйОстаткиИОбороты1.СуммаОборотДт КАК Кол12, | ХозрасчетныйОстаткиИОбороты1.СуммаОборотКт КАК Кол11 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты1 | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты | ПО ХозрасчетныйОстаткиИОбороты1.Период = ХозрасчетныйОстаткиИОбороты.Период |ГДЕ | ХозрасчетныйОстаткиИОбороты.Счет.КодБыстрогоВыбора = &Код1 | И ХозрасчетныйОстаткиИОбороты.Период МЕЖДУ &НП И &КП | И ХозрасчетныйОстаткиИОбороты1.Счет.КодБыстрогоВыбора = &Код2 | И ХозрасчетныйОстаткиИОбороты1.Период МЕЖДУ &НП И &КП | |УПОРЯДОЧИТЬ ПО | Период"; Выборка.УстановитьПараметр("Код1", "6723"); Выборка.УстановитьПараметр("Код2", "6603"); Выборка.УстановитьПараметр("НП", НП); Выборка.УстановитьПараметр("КП", КП); Возврат Выборка.Выполнить().Выгрузить(); С итоге получаю объединенную таблицу, но некоторые даты отсутсутствуют. понимаю что объединение по периоду и если ХозрасчетныйОстаткиИОбороты.Период = Неопределено или ХозрасчетныйОстаткиИОбороты1.Период = Неопределено то эти строки пропадают. но как сделать чтобы не пропадали не могу сообразить. |
|||
1
Господин ПЖ
06.07.15
✎
17:53
|
ты соединением чего добиться хочешь? в ОстаткиИОбороты не выводятся даты когда движений не было
|
|||
2
DTXqueque
06.07.15
✎
17:54
|
Где отсутсвуют?
isNull(ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты1.Период) КАК Период? |
|||
3
mihalich979
06.07.15
✎
18:16
|
(1) Хочу полную таблицу.
если были движения в этот день по счету 6603 и были движения в этот день по счету 6723 то все гуд объединяется если были движения в этот день по счету 6603 и не было движений в этот день по счету 6723 то строка пропадает если не было движений в этот день по счету 6603 и были движения в этот день по счету 6723 то строка пропадает вот в чем трабла |
|||
4
mihalich979
06.07.15
✎
18:17
|
(2) не понял чего-то
|
|||
5
Господин ПЖ
06.07.15
✎
18:22
|
(3) это эффект от Декарта
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты1 | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты - если в одной из таблиц записей нет - выпиливается вся строка соединяй их по "ИСТИНА" |
|||
6
DTXqueque
06.07.15
✎
18:23
|
(3) С чего бы ей пропадать то? В одном из периодов будет дата, в другом NULL. Дальшу кури (2)
|
|||
7
mihalich979
06.07.15
✎
18:32
|
(6) так я формировал отдельно
сначала по одному счета потом по другому и в одном есть даты 19, 22, 23 в другом нет при объединении дат 19, 22, 23 нет вообще |
|||
8
DTXqueque
06.07.15
✎
18:39
|
(7) Ну эт тебе надо проверить прокладку между стулом и клавиатурой)
|
|||
9
DTXqueque
06.07.15
✎
18:41
|
Если не веришь, давай скрины временных таблиц и объединения)
|
|||
10
mihalich979
06.07.15
✎
18:56
|
(6) не курится что-то :(
|
|||
11
DTXqueque
06.07.15
✎
19:02
|
(10) У тебя косяк в (7). Не может такого быть, чтобы полное соединение удаляло что-нибудь
|
|||
12
Одинесю
06.07.15
✎
19:09
|
(7) У тебя соединение, а не объединение, может тебе надо ОБЪЕДИНИТЬ ВСЕ?
|
|||
13
hhhh
06.07.15
✎
20:08
|
(10) ну вот
|ГДЕ | ХозрасчетныйОстаткиИОбороты.Счет.КодБыстрогоВыбора = &Код1 и | И ХозрасчетныйОстаткиИОбороты1.Счет.КодБыстрогоВыбора = &Код2 ты же сам поставил условие, чтобы жестко были и те и другие записи. и сам же удивляешься. то есть соединение правильно всё соединяет. А когда идет дальше, тут ты со своим ГДЕ. |
|||
14
mihalich979
07.07.15
✎
13:39
|
Отбой
решил вопрос вложенным запросом. "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК Кол2, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК Кол4, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК Кол6, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК Кол8, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаНачальныйОстаток КАК Кол3, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотКт КАК Кол5, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаОборотДт КАК Кол7, | ХозрасчетныйОстаткиИОбороты.ВалютнаяСуммаКонечныйОстаток КАК Кол9, | ВложенныйЗапрос.СуммаНачальныйОстаток КАК Кол10, | ВложенныйЗапрос.СуммаОборотКт КАК Кол11, | ВложенныйЗапрос.СуммаОборотДт КАК Кол12, | ВложенныйЗапрос.СуммаКонечныйОстаток КАК Кол13 |ИЗ | (ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Период КАК Период, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток | ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты | ГДЕ | ХозрасчетныйОстаткиИОбороты.Период МЕЖДУ &НП И &КП | И ХозрасчетныйОстаткиИОбороты.Счет.КодБыстрогоВыбора = ""6603"") КАК ВложенныйЗапрос | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , День, , , , ) КАК ХозрасчетныйОстаткиИОбороты | ПО ВложенныйЗапрос.Период = ХозрасчетныйОстаткиИОбороты.Период |ГДЕ | ХозрасчетныйОстаткиИОбороты.Период МЕЖДУ &НП И &КП | И ХозрасчетныйОстаткиИОбороты.Счет.КодБыстрогоВыбора = ""6723"" | |УПОРЯДОЧИТЬ ПО | Период"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |