我正在使用sql server商业智能来生成报告。我完成了我希望在报告中出现的所有工作人员,但最终用户可以自定义报告,而无需向服务器发出另一个请求以根据另一个请求生成另一个报告。首先,我通过一个Boolean类型的参数实现了这一点,并编写了一个表达式以在生成报告之前检查该参数,但我的项目领导说我不想每次都发出请求,而是希望带来所有可能的数据,并让最终用户决定显示什么。
换句话说,我的报告包含一个包含三个系列的图表,我希望最终用户能够在客户端+一个请求中显示一组或所有系列。如何通过sql server business intelligence 2008实现这一点?
从SQL Server 2012升级到SQL Server 2017后,为季度报告提供数据的存储过程无法提供信息。已确定问题所在,因为该过程无法生成驱动该过程其余部分的变量。
标识由于使用数据样式NULL的CONVERT语句而未设置变量。如果在SQL Server 2017上运行以下查询,则变量@CountFrequency将返回NULL,这与Microsoft文档中关于转换和数据样式NULL的预期一致。如果该查询在SQL Server 2012或2016上运行,则@CountFrequency返回4,这允许在升级之前在我们的生产环境中成功运行存储过程。
DECLARE @OwnerCount
我正在基于数据库中的SQL存储过程创建一个报告(在Crystal Reports XI中)。该查询接受一些参数,并返回指定日期范围内的记录。如果传入了参数,则使用它们来确定要返回哪些记录。如果一个或多个参数未传入,则该字段不用于限制返回的记录类型。这有点复杂,所以这里是我的WHERE子句:
WHERE ((Date > @start_date) AND (Date < @end_date))
AND (@EmployeeID IS NULL OR emp_id = @EmployeeID)
AND (@ClientID IS NULL OR client_id
我最近发布了一个关于如何在SQL Server Reporting Services中处理空值的问题。该问题位于。
应用WHERE @MyParam=MyCol OR @MyParam IS NULL会遇到一个问题,那就是如果我选择了单个非空值(从下拉列表中选择并将其作为SQL Server中的值传递),这也会带来空值记录。它应该只带来非空值的记录。
如果选择了非空记录,应如何避免空记录?
我有一个表,它有一个名为status的列,类型为smallint并接受null。Sql server 2000。
我的数据在该字段中主要包含2,但也包含0和null。
当我这样做的时候
select *
from table
where status <> 2
我没有得到所有正确的记录(其中status为null或0)。你知道为什么会发生这种情况,以及如何纠正吗?难道<>不应该给我除2之外的所有东西吗?
我需要一些关于如何最好地解决这个问题的建议。我继承了一个从现有SQL server数据库构建报告实用程序的项目。该数据库包含一个“原始数据”表,其中每个生产数据点都被转储。报告需要提供几个数据列的平均值和Cpk。
“原始数据”表包含25列,包括ID列、LotID列和TimeStamp列,以及包含度量数据的5列。总的来说,该表似乎有20+百万条记录,基本上是一个巨大的平面文件。
我需要做的是提供两种搜索方法:按日期范围和按批次ID。一个批次ID可以保存多达200万条记录。
我首先开发了一个使用简单SELECT查询的C#应用程序。
SELECT *
FROM tblRawData
WHERE
我有几百万条记录在日志表中,想要删除。我使用下面的SQL删除500个记录块中的一个表,以防止数据库锁定,不幸的是,日志表仍然被锁定,所有新连接都无法访问该表。
DECLARE @Deleted_Rows INT;
SET @Deleted_Rows = 1;
WHILE (@Deleted_Rows > 0)
BEGIN
BEGIN TRANSACTION
-- Delete some small number of rows at a time
DELETE TOP (500) Log
WHERE UserId = 3905
这是一个交叉学科的问题--希望我贴在正确的地方。
server 2008 R2
问:如何限制赛斯霍伯历史中特定作业的行数,特别是从高频报告服务订阅插入到SQL中的作业?
历史记录:我有一个SQL服务器,其中SQL代理必须处理来自报告服务计划的ETL作业和作业的混合。最近我发现我在ETL工作上只有2到3天的历史,在那里我曾经有5-7天或更长的时间。用于职务历史记录保留的SQL代理属性为:
Maximum Job History Size (in rows): 5000
Maximum Job History rows per job: 1000
如果你认为“报告服务的工作将是问题的…”你应该是对
最近,我收到了一些错误报告,这些报告似乎表明,有时User.Identity.Name是NULL,或者与它应该是什么(经过身份验证的用户的用户名)不同,即使页面是经过身份验证的:
[Authorize]
[HttpGet]
public ActionResult MyAction()
{
string username = User.Identity.Name;
Member member = memberRepository.GetMemberByUserName(username);
member.something // fails with a null
我的报告引用了SQL Server中的视图。用户可以对char字段进行过滤,但是当他们对某个值使用"!=“进行过滤时,它会过滤出具有该值的记录以及该字段中具有空值的任何记录。我在报告之外对此进行了测试,将过滤器放入SQL代码的WHERE子句中,得到相同的结果。为什么会发生这种情况?我该如何解决这个问题呢?
例如:
SELECT f1, f2, f3
FROM aTable
f1 f2 f3
---- ---- ----
Y Y NULL
Y N M
N Y N
Y N NULL
SELECT f1, f2, f3
F
我正在将一个系统从VB/Access应用程序移动到SQL服务器。access数据库中的一件常见事情是使用表来保存正在计算的数据,然后将该数据用于报表。
例如:
delete from treporttable
insert into treporttable (.... this thing and that thing)
Update treportable set x = x * price where (...etc)
然后从treporttable运行报告。
我听说SQL server不喜欢删除表中的所有记录,因为这会创建巨大的日志等。我尝试过临时sql表,但它们不能持续足够长的时