每次我决定构建一个立方体时,我都会遇到一个问题,但我还没有找到克服它的方法。
问题是如何允许用户自动定义一系列事物,而无需在维度中对它们进行硬编码。我将在一个例子中解释我的问题。
我有一个叫做客户的表:

这是表中的数据:

我想以枢轴样式显示数据,并将工资和年龄分组在定义的范围内,如下所示:

我写了这个脚本并定义了范围:
SELECT [CustId]
,[CustName]
,[Age]
,[Salary]
,[SalaryRange] = case
when cast(salary as float) <= 500 then
'0 - 500'
when cast(salary as float) between 501 and 1000 then
'501 - 1000'
when cast(salary as float) between 1001 and 2000 then
'1001 - 2000'
when cast(salary as float) > 2000 then
'2001+'
end,
[AgeRange] = case
when cast(age as float) < 15 then
'below 15'
when cast(age as float) between …Run Code Online (Sandbox Code Playgroud) 我有 5 列的表 A:
TableA
--
Name
Tel
Email
Address
Run Code Online (Sandbox Code Playgroud)
我想在电话和电子邮件之间添加一个新列(移动):
TableA
--
Name
Tel
Mobile
Email
Address
Run Code Online (Sandbox Code Playgroud)
如果我使用
ALTER TABLE TableA
ADD COLUMN Mobile INT NOT NULL
Run Code Online (Sandbox Code Playgroud)
移动列被添加到表的末尾。
有没有办法在不删除表并将数据移动到新表的情况下实现这一目标?
我每天有 2 种类型的表来填充数据仓库,查找表或配置表只有 100 条记录,这很容易,我只需截断和重新填充表。
但是对于有很多记录的事务表,我通常会递增,即我每天运行 ETL 以添加昨天的记录。
我有两个我总是面临的问题
现在我正在尝试设计一种方法来解决这两个问题,并尝试以这样一种方式开发 ETL,以便在发生任何这些事件时它可以自动修复它。
我希望它检查是否缺少天数并运行该天的 ETL,并检查是否有重复项并删除它们。
以下是我认为的方法 1. 我在过去 5 天里不管,ETL 运行的每一天,删除过去 5 天并重新填充。2.我检查目标表是否在上个月缺少日期,然后我用缺少的天数查询源。
请记住,源是生产环境中的一个巨大表,我必须在从它请求时最大限度地优化我的查询。
谢谢
我想要一个脚本,它可以遍历数据库中的所有表及其列,并根据列类型和大小插入虚拟数据,以便我可以开始使用数据库进行测试,以及运行查询和测试应用程序的能力。
我有一个事实表 CardTransactionFact
表结构
TABLE [dbo].[CardTransactionFact]
[CardTransactionID] [int] IDENTITY(1,1) NOT NULL,
[TransactionTerminalID] [int] NOT NULL,
[SourceAccountTypeID] [int] NULL,
[DestinationAccountTypeID] [int] NULL,
[RimNo] [varchar](15) NULL,
[CaptureCodeID] [int] NOT NULL,
[RoutingCodeID] [int] NOT NULL,
[ProcessingCodeID] [int] NOT NULL,
[ActionCodeID] [int] NOT NULL,
[NetworkCodeID] [int] NOT NULL,
[ProductCodeID] [int] NOT NULL,
[AcquiringCountryCodeID] [int] NOT NULL,
[IssuingCountryCodeID] [int] NOT NULL,
[TransactionCurrencyCodeID] [int] NOT NULL,
[AmountBD] [decimal](18, 3) NOT NULL,
[LocalCurrencyCodeID] [int] NOT NULL,
[CardIssuerBank] [int] NOT NULL,
[CardTypeID] [int] NOT NULL,
[SuspectTransactionFlag] [char](1) NOT NULL, …Run Code Online (Sandbox Code Playgroud) performance index sql-server-2008 facttable query-performance
sql-server ×3
t-sql ×2
alter-table ×1
datatypes ×1
etl ×1
facttable ×1
index ×1
performance ×1
pivot ×1
ssas ×1
ssis ×1