Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
День добрый, уважаемые братья "по перу"! Столкнулся с проблемой выборки из нескольких временных таблиц и никак не могу разобраться и в нете инфы не могу найти. Коротко о цели: построить учет рабочего времени пользователей 1С. Для этой цели выбираются из Журнала регистрации записи о входах-выходах пользователей, которые загоняются в две ТЗ - "ТЗВход" и "ТЗВыход" и далее нужно взять самый первый вход и самый последний выход и все это дело склеить и залить в регистр сведений для дальнейшего анализа. Проблема возникла на этапе слияния этих самых таблиц. Вот код: МВТ = Новый МенеджерВременныхТаблиц; //Работаем с таблицей входов Запрос = Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТВход Из &Таб КАК ВТ1"); Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.УстановитьПараметр("Таб", ТЗВход); Запрос.Выполнить(); //Работаем с таблицей выходов Запрос = Новый Запрос("Выбрать * ПОМЕСТИТЬ ВТВыход Из &Таб КАК ВТ2"); Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.УстановитьПараметр("Таб", ТЗВыход); Запрос.Выполнить(); мТекстЗапроса = " |ВЫБРАТЬ | Т1.Пользователь, | Т1.Дата, | Т1.Время КАК ВремяВхода, | Т2.Время КАК ВремяВыхода | |ИЗ | (ВЫБРАТЬ | UserName КАК Пользователь, | Date КАК Дата, | МИНИМУМ(Time) КАК Время | | ИЗ ВТВход | СГРУППИРОВАТЬ ПО UserName, Date) КАК Т1 |ЛЕВОЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ | UserName КАК Пользователь, | Date КАК Дата, | МАКСИМУМ(Time) КАК Время | ИЗ ВТВыход | СГРУППИРОВАТЬ ПО UserName, Date) КАК Т2 |ПО | Т1.Пользователь = Т2.Пользователь И Т1.Дата = Т2.Дата |УПОРЯДОЧИТЬ ПО | Т1.Дата, Т1.Пользователь"; РезЗапрос = Новый Запрос; РезЗапрос.МенеджерВременныхТаблиц = МВТ; РезЗапрос.Текст = мТекстЗапроса; Результат = Запрос.Выполнить().Выгрузить(); МВТ.Закрыть(); Все бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся. Буду признателен за лююбую ценную информацию. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 14:53 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
а если так? Запрос=новый запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ......... | Т1.Дата, Т1.Пользователь"; // на .... РезЗапрос = Новый Запрос; // за борт на .... РезЗапрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = мТекстЗапроса; /// переписать так Результат = Запрос.Выполнить().Выгрузить(); // интересно почему так? Запрос.МенеджерВременныхТаблиц.Закрыть(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:14 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
а ну ясно сделали неточность да еще и ошиблись ... ВТВыход - существует уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 16:16 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
leafа ну ясно сделали неточность да еще и ошиблись ... ВТВыход - существует уже не совсем Вас понял... где уже существует? сначала создаются две временные таблицы ВТВход и ВТВыход, которые прикручиваются к МВТ. Затем третий запрос делает выборку из все того же МВТ. ВТВыход фигурирует только один раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2009, 17:25 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
давай тексты запросов. особенно интересно про удалить и поместить во временную таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2009, 12:55 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
ГолдВсе бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся. А почему бы не сделать всё в одном запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2009, 05:42 |
|
||
|
Выборка из нескольких временных таблиц
|
|||
|---|---|---|---|
|
#18+
Голд РезЗапрос = Новый Запрос; РезЗапрос.МенеджерВременныхТаблиц = МВТ; РезЗапрос.Текст = мТекстЗапроса; Результат = Запрос.Выполнить().Выгрузить(); МВТ.Закрыть(); Все бы ничего, но при выполнении последнего запроса пишет, что временная таблица уже существует, и хоть ты стреляйся. Само собой,т.к. нужно писать: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2009, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=28&tid=1523753]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 259ms |

| 0 / 0 |
