小编jho*_*owe的帖子

SSAS - 关系/粒度

我有 2 个事实表,每个表都有一个度量组:生产和生产订单。生产具有较低粒度的生产信息(在组件级别),生产订单具有较高级别的信息(带有标题数量等的订单级别)。

我在 Productionorderid 上的两个表之间创建了一个代理键链接。一旦我将产品 ID(来自 Productiondetailsdim)添加到数据透视表,它就会显示实际数量(来自产品订单度量组),并且我无法合并两个度量组中的数量。

如何设计两者之间正确的关系?请参阅我的昏暗使用图。Production Details 是链接两个事实表的 dim,目前 DimProductionDetails 与 Production 存在事实关系。我不确定与生产订单的关系应该是什么(目前是多对多)。

在此输入图像描述

请参阅两个表之间的示例数据:

在此输入图像描述

我必须能够复制这种行为:

在此输入图像描述

ssas ssas-2012

5
推荐指数
1
解决办法
1525
查看次数

SSAS处理非链接数据

我正在尝试将预测数据与多维数据集中的销售数据进行比较.有时我们预测没有实际销售,有时我们有一个没有预测的销售.如果一个或另一个不存在,如何显示0%?这是我当前的代码...绿线是可以的,因为它显示0%,其中一个金额不存在.我希望它对红色圆圈的那些做同样的事情.

CREATE MEMBER CURRENTCUBE.[Measures].[Forecast Accuracy Amount %]
 AS IIF([Measures].[Sales Line Amount TCUSD SF] <> 0 OR [Measures].[F Amount] <> 0, 1-ABS(DIVIDE(([Measures].[F Amount] - [Measures].[Sales Line Amount TCUSD SF]) , [Measures].[F Amount])), NULL),
FORMAT_STRING = "Percent", 
VISIBLE = 1 ,  ASSOCIATED_MEASURE_GROUP = 'Sales Forecast'  ; 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑 - 如果两个度量值都不存在,则它们都将为空并且不会显示.所以我不希望百分比显示任何一个,如果其中一个数量不是0,我只想进行计算.如果f金额为0并且有最后一个显示的销售,预测准确度不应显示100% img ...这是要纠正的最后一件事......

在此输入图像描述

sql-server ssas mdx sql-server-2012 ssas-2012

5
推荐指数
1
解决办法
130
查看次数

查找表或唯一约束上的 SQL 主键?

我想创建一个查找表“orderstatus”。即下面,只是为了澄清这是在数据仓库中使用的。如果需要,我将需要通过 OrderStatus 加入以检索要在其他地方使用的 INT(如果我创建了一个)。例如,就像在事实表中一样,我会将 int 存储在事实表中以链接到查找表。

+------------------------+------------------+
| OrderStatus            | ConnectionStatus |
+------------------------+------------------+
| CLOSED                 | APPROVE          |
+------------------------+------------------+
| COMPLETED              | APPROVE          |
+------------------------+------------------+
| FULFILLED              | APPROVE          |
+------------------------+------------------+
| CANCELLED              | CLOSED           |
+------------------------+------------------+
| DECLINED               | CLOSED           |
+------------------------+------------------+
| AVS_CHECK_SYSTEM_ERROR | CLOSED           |
+------------------------+------------------+
Run Code Online (Sandbox Code Playgroud)

在主键/唯一键方面的最佳实践是什么?我应该创建一个 OrderStatusKey INT 作为具有身份的 PrimaryKey 吗?或者对订单状态(唯一)创建唯一约束?谢谢。

sql sql-server sql-server-2012

5
推荐指数
1
解决办法
1692
查看次数

识别高度分散的索引并重建单个数据库/表SQL Server 2005/2008

我正在寻找一个脚本,它将在单个数据库上识别高度分散的索引,并且可选择单个表,因为我认为这sys.dm_db_index_physical_stats是非常耗费资源的.

还可以选择让表离线吗?我读到这可能在某个地方?

sql sql-server-2005 sql-server-2008

3
推荐指数
1
解决办法
2万
查看次数

SQL将命令发送到程序时出现问题

我正在使用Windows 7和SQL Server 2008 R2,每当我尝试双击.sql文件时,我会收到一些愚蠢的错误"将命令发送到程序时出现问题"是否有人知道如何解决这个问题?每当我打开SQL服务器或BIDS时,我都会让UAC不断出现,但是出于某种原因,Vis studio 2010似乎很好......哦,我检查了exe是以管理员身份运行的,我看到发布的地方......

sql-server sql-server-2008 visual-studio-2008

2
推荐指数
2
解决办法
7439
查看次数

删除并重新创建所有约束与sp_MSForEachTable sql server结合使用

我正在使用SSIS将一些测试数据加载到我们的数据仓库中,并且遇到了外键约束的旧问题.我将在我的本地测试环境中删除/添加所有数据以查找数据问题.因此,我现在不太关心参照完整性......我遇到了这个方便的小问题:

-- disable referential integrity
EXEC sp_MSForEachTable 'ALTER TABLE ? NO CHECK CONSTRAINT ALL' 
GO 

EXEC sp_MSForEachTable 'TRUNCATE TABLE ?' 
GO 

-- enable referential integrity again 
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' 
GO
Run Code Online (Sandbox Code Playgroud)

唯一的问题是如果你有外键约束就没用了,因为你必须实际删除它们.有没有办法将此查询与将删除/重新创建所有约束的内容相结合?

sql-server

2
推荐指数
1
解决办法
1万
查看次数

SSIS在脚本任务中显示变量值

我正在进行一些测试,将执行SQL任务中的完整结果集输出到Foreach循环中,如下所示

在此输入图像描述

我只想将我的变量值输出到消息框,但它似乎不起作用.

public void Main()
    {

        try
        {

            // TODO: Add your code here
            string Variables = Dts.Variables["User::ClientID"].ToString() +
            Dts.Variables["User::Passphrase"].ToString() +
            Dts.Variables["User::KeyFileName"].ToString() +
            Dts.Variables["User::InboundEncryptionRequired"].ToString() +
            Dts.Variables["User::SftpResponseRequired"].ToString() +
            Dts.Variables["User::OutboundDecryptionRequired"].ToString() +
            Dts.Variables["User::SftpHost"].ToString() +
            Dts.Variables["User::SftpPort"].ToString() +
            Dts.Variables["User::SftpUserName"].ToString() +
            Dts.Variables["User::Active"].ToString() +
            Dts.Variables["User::SftpDownloadFrom"].ToString() +
            Dts.Variables["User::SftpUploadTo"].ToString() +
            Dts.Variables["User::SftpDeleteFilesFromRemote"].ToString() +
            Dts.Variables["User::ConnectionProtocol"].ToString();

            MessageBox.Show(Variables);

        }



        catch (Exception Ex)
        {

            MessageBox.Show(Ex.Message);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

我只是得到"元素无法在集合中找到"或其他东西,即使我知道查询输出2行.

我还在foreach循环上映射了我的变量,并在scrip任务上指定了只读变量.

*更新*

这让我疯了.我已经三次检查了我的变量名,可以确认我得到了完整的结果集.

在此输入图像描述

我从脚本任务变量中删除了User ::但仍然没有运气.

c# ssis

2
推荐指数
1
解决办法
5万
查看次数