#0
by AndrejK
Можно ли как-то одним SQL запросом без циклов и курсоров получить остатки на каждый день по списку товаров?? И если можно - то как?? Может кто чего делал подобное???
#4
by Sadovnikov
Теоритически можно. Используя хитрые связывания. Только ОЧЕНЬ долго работать будет. Проще посчитать в запросе остатки на начало и в запросе же цикл устроить, прибавляя обороты по дням.
#5
by AndrejK
Я так и сделал, работает довольно быстро. Хотеля выяснить, может кто как делал по-другому?? Это для 1С запроса и довольно глючная группировка
#9
by Sadovnikov
Кстати, проводил интересный эксперимент. ТОчнее, не проводил, а он случайно получился :) Задача: есть таблица на мсскл, с неким полем Ид. В нем возврастающая последовательность 1, 2, 3, 4, 5, 6, 7, 9, 10. отсутствует 8. таким образом два интервала. интервалов может быть скока угодно, надо вернуть мин макс для всех. Имеем 2 решения: 1. Create Table #Z(K Int) Insert Into #Z Values Insert Into #Z Values Insert Into #Z Values-- Insert Into #Z Values Insert Into #Z Values Insert Into #Z Values-- Insert Into #Z Values Insert Into #Z Values Insert Into #Z Values Insert Into #Z Values-- Insert Into #Z Values-- Insert Into #Z Values Insert Into #Z Values Insert Into #Z Values-- Create Table #X (Min Int, Max Int) DECLARE @RowsCount Int, @ЧислоИзТаблицы Int, @МинЧисло Int, @ЧислоПоследовательности Int, @СтопудовоМинимальноеЧисло Int DECLARE Числа CURSOR Local Forward_Only Read_Only STATIC FOR Select K From #Z Order By K OPEN Числа End 2. create table t (n int) insert into t select 1 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 9 select min(n) nMin, max(n) nMax from (select n, n-(select count(distinct n) from t tt where tt.n<t.n) e from t) z group by e drop table t При заполнении исследуемой таблицы таким образом: Create Table #Z(K Int) Declare @Число1 Int, @Число2 Int END первый запрос выполнился за 12 секунд. Второго я ждал 7 минут и надоело - остановил. P.S. Так что циклы - не всегда зло :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получение остатков по регистру без использования запроса
- Получение обновления
- Получение почты
- 8-ка, получение значения из списка значений, по Строковому представлению
- Получение остатков на дату между началом и концом периода запроса БИ
- получение из одного материала двух видов продукции 1С
- Получение остатков из регистра бухгалтерии за период в разрезе каждого месяца периода
- Получение почты: получение только непрочитанных сообщений?
- Получение остатков за каждый день в СКД (с условием)
- Запрос остатков за период на каждый месяц. Как оптимальнее?
- Запрос. Ограничение остатков по регистратору или получение остатка по документу
- Ускорить получение остатков
В этой группе 1С
- Изменение записей в периодическом независимом регистре сведений
- Почему не работает УстановитьВремя(РежимАвтоВремя.Первым) ?
- Закрытие месяца - Корректировка стоимости списания и расчёт сеебстоимости
- Перевести несколько доков на другой язык
- v7: Неверные остатки по 01 счету
- Как убрать окно которое появляется при запуске 1С 8.1 Предприятие?
- v7: ЗиК. Как исправить некорректно введенный отпуск по уходу за ребенком?
- В какой таблице sql хранятся юзеры 1с?
- ЗУП и SQL. Конфликт блокировок при выполнении транзакции
- не закрываются суммы у счета 10.3 в упп
- Как наиболее быстро можно сравнить (объединить) два Дерева значений
- Ошибка при чтении из архива
- СКД: Как программно изменить родителя группировки в СКД
- v7: УПП. Распределение оплаты труда по номенклатурным группам.
- ЗУП Задолженность по ЗП
- Не показывает СверхУрочные в Начислении ЗП ЗУП 8.1
- Ввод реализации на основании заказа при отсутствии товара
- v7: Вопросы к тесту 1С:Профессионал БП - помогите
- Оприходование б/у материалов...
- Значение не является значением объектного типа