【问题标题】:Move From Access To SQL Server: Best Calculation options?从 Access 转移到 SQL Server:最佳计算选项?
【发布时间】:2015-12-07 02:27:08
【问题描述】:

我正在将我的 Access 数据库表和更新过程移动到 SQL Server 上。我已经能够通过 SSIS 传输历史数据并创建任务以定期导入数据问题是复制 Access 中保存的查询

例如,我有一个使用 SQl 计算多个 KPI 的查询,例如

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

但是没有在 SQL Server 中创建查询并将其保存在某个地方,我似乎找不到更好的答案。

我曾考虑过使用 SSAS,这样所有这些功能都可以预定义,但是因为其中大部分只是在一张表上,这被证明是困难的

其他用户需要访问这些查询,然后才能将它们存储在 Access 中并可以根据需要进行修改,但我不太确定 SQL Server,什么选项最好?

谢谢

【问题讨论】:

  • 我不认为我真的明白你的要求,但不知何故计算列浮现在脑海。如果需要聚合,请查看索引视图。
  • 我不相信我可以将聚合上下文用于计算列?上面示例中的代码试图为整个查询返回特定字段中 5 的总数,而不仅仅是行
  • 在我进一步混淆之前,您应该熟悉视图和存储过程,对吧?
  • 我对 SQL Server 很陌生,但这是我一直在寻找的两个选项,但是对于这两个选项来说,几乎感觉你只是在保存一个查询......对吗? Views 不断重新格式化我的代码(及其巨大的),所以可能是一个存储过程
  • 简单地说,存储过程可以让你保存代码(就像一个函数)。视图做同样的事情,但它们只能有一个 SELECT,当你使用它们时,感觉就像你在从表中读取一样。是您的 IDE 重新格式化您的代码 - 如果您使用查询窗口(文本编辑器),您可以保留原始格式。

标签: sql sql-server sql-server-2005 ssis ssas


【解决方案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 

在作业的一个步骤中,如果您需要该功能,它将触发它按计划运行。您还可以使用 SSRS 中的 proc 名称来创建报告。

至于访问查询,我相信很遗憾您正在查看手动代码转换。找一个知道这两种语法的人或自己学习 SQL 语法是你最好的选择。 SQL 在某些方面可以做得更好,尤其是在您使用较新版本的情况下。

玩得开心!希望这可以帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多