Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Янв 2017, 19:35
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Объединение данных, или помогите правильно составить запрос.  (Прочитано 1497 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн KazakOFF

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
Вот пишу такой запрос


| ВТ_Сотрудники.N КАК N,
               | ВТ_Сотрудники.Табельный_номер_АЭС,
               | ВТ_Сотрудники.Сотрудник,
               | ВТ_Сотрудники.Подразделение,
               | ВТ_Сотрудники.Должность,
               | ВТ_Сотрудники.Дата,
               | ВТ_Сотрудники.Время_входа,
               | ВТ_Сотрудники.Время_выхода,
               | ВТ_Сотрудники.Количество_отработанных_часов,
               | РабочееВремяРаботниковОрганизаций.Сотрудник КАК Сотрудник2,
               | СУММА(РабочееВремяРаботниковОрганизаций.Часов) КАК потабелю,
               | РабочееВремяРаботниковОрганизаций.Период КАК Период1,
               | СУММА(РабочееВремяРаботниковОрганизаций.Часов) - ВТ_Сотрудники.Количество_отработанных_часов КАК Разница
               |ИЗ
               | ВТ_Сотрудники КАК ВТ_Сотрудники
               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций
               | ПО ВТ_Сотрудники.Дата = РабочееВремяРаботниковОрганизаций.Период
               | И ВТ_Сотрудники.Сотрудник = РабочееВремяРаботниковОрганизаций.Сотрудник.Наименование
               |ГДЕ
               | РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &дата1 И &дата2
               |
               |СГРУППИРОВАТЬ ПО
               | РабочееВремяРаботниковОрганизаций.Сотрудник,
               | РабочееВремяРаботниковОрганизаций.Период,
               | ВТ_Сотрудники.N,
               | ВТ_Сотрудники.Табельный_номер_АЭС,
               | ВТ_Сотрудники.Сотрудник,
               | ВТ_Сотрудники.Подразделение,
               | ВТ_Сотрудники.Должность,
               | ВТ_Сотрудники.Дата,
               | ВТ_Сотрудники.Время_входа,
               | ВТ_Сотрудники.Время_выхода,
               | ВТ_Сотрудники.Количество_отработанных_часов



Выдает все правильно но есть одно но, Сотрудники которые есть в ВТ_Сотрудники.Сотрудник у них нету ДАТЫ и они не ровны РабочееВремяРаботниковОрганизаций.Сотрудник

Но мне нужно что бы на выходе они были.

Хотле сделать два запроса вот так



    | ВТ_Сотрудники.N КАК N,
               | ВТ_Сотрудники.Табельный_номер_АЭС,
               | ВТ_Сотрудники.Сотрудник,
               | ВТ_Сотрудники.Подразделение,
               | ВТ_Сотрудники.Должность,
               | ВТ_Сотрудники.Дата,
               | ВТ_Сотрудники.Время_входа,
               | ВТ_Сотрудники.Время_выхода,
               | ВТ_Сотрудники.Количество_отработанных_часов,
               | РабочееВремяРаботниковОрганизаций.Сотрудник КАК Сотрудник2,
               | СУММА(РабочееВремяРаботниковОрганизаций.Часов) КАК потабелю,
               | РабочееВремяРаботниковОрганизаций.Период КАК Период1,
               | СУММА(РабочееВремяРаботниковОрганизаций.Часов) - ВТ_Сотрудники.Количество_отработанных_часов КАК Разница
               |ИЗ
               | ВТ_Сотрудники КАК ВТ_Сотрудники
               | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций
               | ПО ВТ_Сотрудники.Дата = РабочееВремяРаботниковОрганизаций.Период
               | И ВТ_Сотрудники.Сотрудник = РабочееВремяРаботниковОрганизаций.Сотрудник.Наименование
               |ГДЕ
               | РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &дата1 И &дата2
               |
               |СГРУППИРОВАТЬ ПО
               | РабочееВремяРаботниковОрганизаций.Сотрудник,
               | РабочееВремяРаботниковОрганизаций.Период,
               | ВТ_Сотрудники.N,
               | ВТ_Сотрудники.Табельный_номер_АЭС,
               | ВТ_Сотрудники.Сотрудник,
               | ВТ_Сотрудники.Подразделение,
               | ВТ_Сотрудники.Должность,
               | ВТ_Сотрудники.Дата,
               | ВТ_Сотрудники.Время_входа,
               | ВТ_Сотрудники.Время_выхода,
               | ВТ_Сотрудники.Количество_отработанных_часов
               |
               |ОБЪЕДИНИТЬ
               |
               |ВЫБРАТЬ
               | ВТ_Сотрудники.N,
               | ВТ_Сотрудники.Табельный_номер_АЭС,
               | ВТ_Сотрудники.Сотрудник,
               | ВТ_Сотрудники.Подразделение,
               | ВТ_Сотрудники.Должность,
               | ВТ_Сотрудники.Дата,
               | ВТ_Сотрудники.Время_входа,
               | ВТ_Сотрудники.Время_выхода,
               | ВТ_Сотрудники.Количество_отработанных_часов,
               | NULL,
               | NULL,
               | NULL,
               | NULL
               |ИЗ
               | ВТ_Сотрудники КАК ВТ_Сотрудники";



Но на выходе они не схлопываются потому что есть NULL

Может кто что подскажет?
 


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1345
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Первое: что за бредовая связь -
И ВТ_Сотрудники.Сотрудник = РабочееВремяРаботниковОрганизаций.Сотрудник.Наименование
???
у вас во временной таблице ВТ_Сотрудники.Сотрудник наименование? добавьте тогда еще 1 колонку со ссылкой и соединяйте по ссылке. по наименованию не делайте.

Второе и главное: я не понял ваш вопрос.
Сотрудники которые есть в ВТ_Сотрудники.Сотрудник у них нету ДАТЫ и они не ровны РабочееВремяРаботниковОрганизаций.Сотрудник
это как понять? попробуйте написать тоже самое другими словами.

Оффлайн KazakOFF

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
Первое: что за бредовая связь -
И ВТ_Сотрудники.Сотрудник = РабочееВремяРаботниковОрганизаций.Сотрудник.Наименование
???
у вас во временной таблице ВТ_Сотрудники.Сотрудник наименование? добавьте тогда еще 1 колонку со ссылкой и соединяйте по ссылке. по наименованию не делайте.

Второе и главное: я не понял ваш вопрос.
Сотрудники которые есть в ВТ_Сотрудники.Сотрудник у них нету ДАТЫ и они не ровны РабочееВремяРаботниковОрганизаций.Сотрудник
это как понять? попробуйте написать тоже самое другими словами.

То есть у меня есть список Сотрудников который я загружаю

например 

БЕЛОВ 20,04,2010    7 часов
ПЫШКИН 21,04,2010   4 Часов
Кузнеков 20,04,2010 5 Часов


Но уже в табеле в 1С ПЫШКИНА с Датой 21,04,2010 нету

Тогда на выходе его не будет, но мне нужно что-бы он был.

Например так

БЕЛОВ 20,04,2010    7 часов    6 Часов по табелю
ПЫШКИН 21,04,2010   4 Часов
Кузнеков 20,04,2010 5 Часов    4 Часа по табелю

а у меня сейчас так

БЕЛОВ 20,04,2010    7 часов    6 Часов по табелю
Кузнеков 20,04,2010 5 Часов    4 Часа по табелю


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1345
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
     |ГДЕ
                  |   РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &дата1 И &дата2
вот это вам мешает.
зачем это условие???
если вам к списку сотрудников слева надо присоединить табель, зачем еще отбор по датам дополнительный?
если отбор все таки чем-то оправдан, то вам его надо вынести либо в условия соединения (то есть вместо слова ГДЕ написать И), либо вынести табель в подзапрос, внутри подзапроса наложить условие и потом уже соединяться с вашим списком


Оффлайн KazakOFF

  • **
  • Сообщений: 65
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
     |ГДЕ
                  |   РабочееВремяРаботниковОрганизаций.Период МЕЖДУ &дата1 И &дата2
вот это вам мешает.
зачем это условие???
если вам к списку сотрудников слева надо присоединить табель, зачем еще отбор по датам дополнительный?
если отбор все таки чем-то оправдан, то вам его надо вынести либо в условия соединения (то есть вместо слова ГДЕ написать И), либо вынести табель в подзапрос, внутри подзапроса наложить условие и потом уже соединяться с вашим списком

Мда.... спасибо помогло И

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1345
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Мда....
На самом деле логика проста, понятна и прозрачна. Надо понять ее 1 раз и дальше будет проще.
Что такое условия под ГДЕ? Это условия, которые накладываются на полученную выше выборку. Другими словами, вы сначала получили таблицу
БЕЛОВ 20,04,2010    7 часов    6 Часов по табелю
ПЫШКИН 21,04,2010   4 Часов
Кузнеков 20,04,2010 5 Часов    4 Часа по табелю
а потом на нее наложили ваше условие по дате. как вы считаете, строка
ПЫШКИН 21,04,2010   4 Часов
подходит под это условие?
не дожидаясь вашего ответа отвечу сам: НЕТ, потому что там NULL вместо даты, по которой у вас условие, стало быть эта строка из выборки исключается.

Что вы сделали, изменив ГДЕ на И? Вы перенесли условие из общего ко всей выборке к условию соединения, то есть другими словами вышеописанная строка исключена не будет.
Как-то так в общем...
Надеюсь примерно понятна суть.

P.S. с юбилеем меня - 1000-е сообщение :zebzdr:

Оффлайн alex0402

  • ****
  • Сообщений: 316
  • РЕПУТАЦИЯ: 36
  • КПД: 11%
  • Регистрация: 2010-09-10
  • Сайт: 
Что бы были сотрудники в выборке при отсутствии в РабочееВремяРаботниковОрганизаций нужно добавить связь со справочником Сотрудники и Выводить сотрудника от туда в итог.


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1516
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3516
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 3807
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 1659
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 178
Последний ответ 07 Дек 2016, 15:53
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
169 Сообщений
alex0402
65 Сообщений
MuI_I_Ika MuI_I_Ika
47 Сообщений
crow1983
35 Сообщений
alexandr_ll
33 Сообщений
LexaK
32 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
дфтын дфтын
17 Сообщений
BuhRust
17 Сообщений

* Кто онлайн

  • Точка Гостей: 317
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal