Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Другие темы раздела
SQL Server Хранимые процедуры https://www.cyberforum.ru/ sql-server/ thread2350650.html
Всем привет! Есть такое задание: Увеличить количество часов на лабораторные работы на 5%, а количество лекций уменьшить на 5 % по дисциплинам, читаемым задаваемой кафедрой. Не могу сделать...
SQL Server Расчет значений между столбцами
Всем добрый вечер. Подскажите пожалуйста: написал запрос (ниже), количество столбцов может быть разное, как вычесть из столбца предыдущее значение, с учетом того, что количество столбцов может...
SQL Server Полное удаление SQL
Доброго времени суток. Подскажите пожалуйста как правильно полностью удалить ПЗ SQL с компа?Если можно пошаговою последовательность.Заранее спасибо
SQL Server Добавить таблицу к столбцу в выборке результатов при выполнении запросов через Ssms Добрый день. Подскажите может есть настройки чтобы при запросе select * from person left join groups g on g.groupid = person.groupid выводился бы результат ... https://www.cyberforum.ru/ sql-server/ thread2350314.html
SQL Server Создание представлений https://www.cyberforum.ru/ sql-server/ thread2349762.html
Здравствуйте, помогите пожалуйста с представлением: Создать представление, отображающее сотрудников, всегда выполнявших только заказы с однотипными компонентами(отбор сотрудников, у которых подсчет...
SQL Server Объединение определенных ячеек таблицы SQL Server
Имеется функция, которая возвращает таблицу. Таблица собирается из других объединенных таблиц. Но получается так, что у меня поля ФАМИЛИЯ ИМЯ ОТЧЕСТВО ДАТА_ЗАКАЗА ДАТА_ИСПОЛНЕНИЯ всегда будут...
SQL Server Объединение строк таблицы
Здравствуйте. Хотел узнать, есть ли возможность объединение нескольких определенных строк в таблице SQL Server. Допустим, есть таблица ЗАКАЗЫ(код_заказа, имя_заказчика) И если у нас один заказчик...
SQL Server Подключение к БД на VirtualBox MS SQL Server 2017(на VB). SSMS 2017(на PC и VB). MS SQL server установлен на Win10 в VirtualBox(VB), который стоит на PC. VB и PC видят друг друга через проводник. Тип подключения VB: сетевой... https://www.cyberforum.ru/ sql-server/ thread2348900.html
SQL Server Триггер при добавлении или изменении записи в таблице БД https://www.cyberforum.ru/ sql-server/ thread2348740.html
Есть таблица БД 1. в ней есть несколько столбцов: id, ...., schet, scet1, name, .... (в нее происходит запись из вне) Есть еще одна таблица БД 2. в ней есть несколько столбцов: id, name, schetchik,...
SQL Server Нужно для каждой даты посчитать процент вовремя выполненных заказов Добрый день, прошу помощи Есть 2 таблицы. Заказы (номер заказа, код клиента, дата заказа, срок сборки, дополнительная информация о заказе, адрес доставки); Сборка заказов (номер заказа, код... https://www.cyberforum.ru/ sql-server/ thread2348705.html
101 / 103 / 42
Регистрация: 11.01.2016
Сообщений: 908
19.11.2018, 11:03  [ТС] 0

Анрил таск. Преобразование данных

19.11.2018, 11:03. Показов 565. Ответов 9
Метки (Все метки)

Ответ

invm, доброе утро, такой должен быть ожидаемый результат.
Можно ли мой вариант более элегантнее чтоли написать?
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
    DECLARE @Number smallint = null
    DECLARE @Distance decimal(7,2)
    DECLARE @pre_dist decimal(7,2)
    DECLARE @dist_covered decimal(7,2) = 0
    DECLARE @dist_from_prev_parking decimal(7,2) = null
 
    DECLARE @ParkingTime bigint
    DECLARE @recordDate datetime
 
    DECLARE StageCursor CURSOR FOR
 
    SELECT 
           datas.ParkingTime AS ParkingTime,
             -- время записи предыдущей записи
           LAG(datas.dist, 1) OVER(ORDER BY datas.recordDate),
           datas.dist,
           datas.recordDate
         
    FROM @Datapath as datas
    OPEN StageCursor 
    FETCH NEXT FROM StageCursor INTO  @ParkingTime,@pre_dist,@Distance,@recordDate
    WHILE @@FETCH_STATUS = 0
    BEGIN
 
    DECLARE @IsFirst BIT  = 0
    DECLARE @IsParking BIT  = 0
 
        -- Первая запись
        IF @Number IS NULL
        BEGIN
            SET @IsFirst = 1
            SET @Number = 1 
            SET @Distance = 0
            SET @ParkingTime = 0
        END
 
        IF (@ParkingTime>0) 
        BEGIN
            SET @IsParking = 1
            if(@IsFirst = 0)
            SET @Number = @Number + 1
        END
 
        if(@IsFirst = 0)
        SET @dist_from_prev_parking = @dist_from_prev_parking + @Distance 
 
        SET @dist_covered = @dist_covered + @Distance
        DECLARE @ForInsertParkingTime time =  CONVERT(VARCHAR(12),DATEADD(SECOND, @ParkingTime / 10000000, '19700101 00:00'), 114)
 
        INSERT INTO @Result VALUES(@Number, @ForInsertParkingTime,@Distance /1000,
         @dist_from_prev_parking /1000,@dist_covered /1000,@recordDate)
 
        IF (@IsParking = 1) 
            SET @dist_from_prev_parking = 0
 
        -- Следующий элемент курсора ячеек, пока есть записи
        FETCH NEXT FROM StageCursor INTO   @ParkingTime,@pre_dist,@Distance,@recordDate
    END
    CLOSE StageCursor
    DEALLOCATE StageCursor
 
--вывод результата. Ожидаемый результат
    select * from @Result
Добавлено через 1 минуту
Цитата Сообщение от Jefe Посмотреть сообщение
37520300000 секунд это более 1000 лет, может надо отбросить несколько нулей?
Это в тиках, чтобы конвертировать тики в секунды нужно тики разделить на 10000000

Вернуться к обсуждению:
Анрил таск. Преобразование данных
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2018, 11:03

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Таск List<String>
Добрый день! надо решить такую задачку Я написала что-то вроде этого, но у меня не выводит мой...

WindowsForm и работа по Schedule Таск
Как совместить 2 части в одной программе 1.WindowsForm(пользователь производит начальные установки)...

FreeRTOS и опрос кнопок и передача в таск
Не могу придумать в голове как передать состояние кнопок из одной задачи в другую. Задачу ставлю...

Как лучше реализовать таск-менеджер?
Вопрос: я выполняю тестовое задание. Мне нужно разработать таск-менеджер на Bitrix. Функциональные...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.