Импорт из сторонней БД

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Записи
  • #16160
    vg
    Участник

    Здравствуйте.

    1) Не понял как отобразить извлечённые данные из БД в веб-приложении, если выборка это таблица. Допустим нужно отобразить выборку 5 столбцов на 10 строк, которая является результатом сложного запроса. Это возможно? Или нужно разбивать на 5 каналов, чтобы результатом запроса был 1 столбец на 10 строк? Но как тогда отобразить через 1 канал столько значений? Делать 50 каналов с запросом, извлекающим только одно значение?

    2) Запуск внешних приложений, извлечение данных из текстовых файлов реализуется с помощью формул? Или есть штатные средства?

    • Тема изменена 6 лет, 2 месяца назад пользователем vg.
    #16162
    manjey73
    Участник

    С помощью формул в принципе можно работать с файлами. Есть нюансы и может не хватить количества знаков для формулы, правда этот момент когда то серьезно увеличили.
    Пример работы с файлом делал для сохранения переменных при перезапусках на Raspberry Pi, так как там базы текущих данных вынесены в tmpfs.

    Посмотрите, выкладывал в примерах формул SaveRetain, LoadRetain

    • Ответ изменён 6 лет, 2 месяца назад пользователем manjey73.
    #16169
    baur
    Участник

    Или нужно разбивать на 5 каналов, чтобы результатом запроса был 1 столбец на 10 строк

    наоборот, 1 строка 10 столбцов, а для 5 x 10, требуется 1 х 50

    #16170
    baur
    Участник

    Пример

    SELECT [1_467]
    	,[2_467]
    	,[3_467]
    	,[1_469]
    	,[2_469]
    	,[3_469]
    	,[1_468]
    	,[2_468]
    	,[3_468]
    	,[1_466]
    	,[2_466]
    	,[3_466]
    	,[0_467]
    	,[0_469]
    	,[0_468]
    	,[0_466]
    FROM (
    	SELECT CONCAT (
    			isnull(d.shiftno, '0')
    			,'_'
    			,d.DeviceID
    			) AS TAG
    		,SUM(d.CounterValueDiff) AS CounterValueDiffSUM
    	FROM RapidScada.vCnlDataCounterElectric d
    	WHERE d.CounterValueDate = CAST(GETDATE() AS DATE)
    	GROUP BY GROUPING SETS((d.DeviceID), (
    				d.DeviceID
    				,d.shiftno
    				))
    	) AS j
    PIVOT(MAX(CounterValueDiffSUM) FOR TAG IN (
    			[1_467]
    			,[2_467]
    			,[3_467]
    			,[0_467]
    			,[1_469]
    			,[2_469]
    			,[3_469]
    			,[0_469]
    			,[1_468]
    			,[2_468]
    			,[3_468]
    			,[0_468]
    			,[1_466]
    			,[2_466]
    			,[3_466]
    			,[0_466]
    			)) AS p

    это конечно не удобно, каждый раз придется менять запрос.
    Было бы лучше если каналы сформировались из строк а не из столбцов …

    #16173
    vg
    Участник

    Спасибо.

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Для ответа в этой теме необходимо авторизоваться.