Имя: Пароль:
1C
1С v8
в запросе "ОБЪЕДИНИТЬ" не объединяет как правильно написать?
,
0 Azmarika
 
26.12.16
08:40
Добрый день! Буду благодарна за разъяснение. Есть два регистра сведений в одном отражается дата прихода, в другом даты отсутствия. И вот в запросе не происходит объединения. Идет две строки вместо одной. Когда числовые данные, то я потом обычно делаю группировку. А тут даты... Что я делаю ни так?

ВЫБРАТЬ
    АС_ВремяПриходаНаРаботу.Период КАК Период,
    АС_ВремяПриходаНаРаботу.Пользователь КАК Пользователь,
    АС_ВремяПриходаНаРаботу.Время КАК Приход,
    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК НачалоЖурнал,
    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК КонецЖурнал
ИЗ
    РегистрСведений.АС_ВремяПриходаНаРаботу КАК АС_ВремяПриходаНаРаботу
ГДЕ
    АС_ВремяПриходаНаРаботу.Период МЕЖДУ &НачалоПериода И &КонецПериода

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    АС_УчетРабочегоВремени.Период,
    АС_УчетРабочегоВремени.Пользователь,
    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0),
    ВЫБОР
        КОГДА АС_УчетРабочегоВремени.НачалоПериода ЕСТЬ NULL
            ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        ИНАЧЕ АС_УчетРабочегоВремени.НачалоПериода
    КОНЕЦ,
    ВЫБОР
        КОГДА АС_УчетРабочегоВремени.КонецПериода ЕСТЬ NULL
            ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        ИНАЧЕ АС_УчетРабочегоВремени.КонецПериода
    КОНЕЦ
ИЗ
    РегистрСведений.АС_УчетРабочегоВремени КАК АС_УчетРабочегоВремени
ГДЕ
    АС_УчетРабочегоВремени.Период МЕЖДУ &НачалоПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
    Пользователь,
    Период
1 butterbean
 
26.12.16
08:42
тут надо это все во вложенный запрос и потом группировать, ну или ИТОГИ считать
2 Azmarika
 
26.12.16
08:49
Когда пробую группировать, то вместо даты считается количество различных записей (
3 Мимохожий Однако
 
26.12.16
08:50
Убери дату из группировки
4 Cool_Profi
 
26.12.16
08:51
Не объединить, а соединение
5 Azmarika
 
26.12.16
08:59
Если даты из группировки убираю, ничего не меняется.
6 Мимохожий Однако
 
26.12.16
09:00
(5) Обрати внимание на (4). Объединение увеличивает количество строк в запросе, а соединение увеличивает количество полей. Ну, это конечно упрощённо
7 Azmarika
 
26.12.16
09:04
6, Спасибо. Обратила. А как правильно это прописать, если вместо объединить ставлю, то выдается ошибка. Никогда не пользовалась этим выражением
8 osa1C
 
26.12.16
09:05
(0) Тоже не понял зачем применено объединение?  Объединяются таблицы вертикально (т.е. к первой таблице снизу добавляется вторая) и конечно будет несколько строк. Вам же. как я понимаю нужно левое соединение. Т.е. к первой таблице слева добавить данные второй таблицы соединив их по Периоду и Пользователю.
9 Cool_Profi
 
26.12.16
09:05
10 Azmarika
 
26.12.16
09:09
Всем большое спасибо! Разобралась. Действительно ступила.
11 DrZombi
 
гуру
26.12.16
09:48
(0) Должно быть две, почему они должны быть в одной...
Делайте еще доп. запрос, где выполняете группировку :)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший