2015-09-10 3 views
0

Я в процессе перемещения таблиц базы данных Access и процесса обновления на SQL Server. Я смог передавать исторические данные и создавать задачи через SSIS, чтобы регулярно импортировать данные, проблема реплицирует сохраненные запросы, которые были в AccessПереход от доступа к SQL Server: лучшие варианты расчета?

Например, у меня был запрос, который вычислял несколько KPI с использованием SQl, например

SUM(Case when ThisField = 5 then 1 else 0)) 

Однако, не создавая запрос на SQL Server и сохраняя его где-то, я не могу найти лучший ответ.

я рассматривал возможность использования SSAS, таким образом все эти функции могут быть заранее определены, однако, так как большинство это просто на 1 стол, который оказался трудным

Другие пользователи должны получить доступ к этим запросы, прежде чем они были сохранены в пределах Access и может модифицироваться по мере необходимости, но я не уверен в SQL Server, какой вариант был бы лучше?

Благодаря

+0

Я не думаю, что я действительно понимаю, о чем вы просите, но почему-то вычисленные столбцы приходят на ум. Если требуется агрегация, просмотрите индексированные представления. – Biscuits

+0

Я не верю, что могу использовать агрегированный контекст для вычисляемых столбцов? Этот код в приведенном выше примере пытается вернуть общее число 5 в конкретном поле для всего запроса, а не только строку – Chris

+0

Прежде чем я еще больше запутаю вас, вы знакомы с представлениями и хранимыми процедурами, не так ли? – Biscuits

ответ

1

Я не могу комментировать, но я дам вам «ответ». Хранимые процедуры - лучший способ «сохранить» вещи, а затем вы можете создавать задания для их запуска. В основном

CREATE PROCEDURE YourNewProcedureName 
declare @Parameter as varchar(50) --if you need a parameter 
as 
Select * from yourtable 
where ThisColumn = @Parameter 

и после этого сменил слово CREATE на ALTER и выполнил второй раз. Таким образом, вы теперь просто изменяете существующую процедуру.

ALTER PROCEDURE YourNewProcedureName 
declare @Parameter as varchar(50) --if you need a parameter 
as 
Select * from yourtable 
where ThisColumn = @Parameter 

Затем

execute YourNewProcedureName 

на этапе в работу, будет вызывать его для запуска по расписанию, если вам нужно, что функциональность. Вы также можете использовать имя proc в SSRS для создания отчетов.

Что касается запросов на доступ, я считаю, что, к сожалению, вы смотрите на ручное преобразование кода. Найти кого-то, кто знает оба синтаксиса или изучать синтаксис SQL самостоятельно, - ваш лучший выбор. Есть вещи, которые SQL может сделать намного лучше, особенно если вы находитесь на более новой версии.

Удачи! Надеюсь это поможет!

Смежные вопросы