我的SCCM 2007 SQL Web报告未显示结果

时间:2013-03-12 23:56:51

标签: sql sccm sccm-2007

我使用SQL Management Studio创建了一个SCCM SQL报告。然后,我为我的资产管理Office创建了以下提示,以便在Web报表上使用:Publisher,显示名称和版本。

显示名称和版本提示都是可选的。

我没有收到语法错误或任何内容,但是当我点击“显示”按钮生成网络报告时,我完全没有收到任何结果。

这是我的SQL代码:

=============================================== ===================================

SELECT dbo.v_R_System.Netbios_Name0,dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0,                       dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0

FROM dbo.v_R_System INNER JOIN                       dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID

WHERE dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = @DisplayName AND dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0 = @Version AND dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0 = @Publisher

按订单排序 dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 ASC

=============================================== ===================================

我运行我的报告,在Publisher提示符下,输入%Autodesk%之类的内容,然后单击“显示”按钮,绝对不会显示任何内容。我可以转到另一个报告并查找Autodesk产品,但不是这个。我不是一个精通SQL的人,所以如果有人能帮助我那将是伟大的。

由于

2 个答案:

答案 0 :(得分:0)

%符号通常表示通配符。它们与like关键字一起使用。你有相同的迹象。换句话说,

where DisplayName like '%fred%'

将返回fred,freddie,frederick等。但是,

where DisplayName = '%fred%'

只会返回%fred%

答案 1 :(得分:0)

AHHHH我看到你在谈论丹。

无视我的最后陈述/询问所有人,我现在正在使用我的代码。我的Prompt @variables的SQL代码未正确配置以使用“Like”常量,所以我修改了我的主要SQL代码:

=============================================== =================================== 选择Distinct dbo.v_R_System.Netbios_Name0,dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0 来自dbo.v_R_System 在dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID上加入dbo.v_GS_ADD_REMOVE_PROGRAMS 其中dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0喜欢@Publisher或者dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0喜欢@DisplayName或者dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0喜欢@VersionOrder来自dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 ASC

=============================================== ===================================

然后我必须修改我的提示SQL代码以使用Begin,If,Else和End语句。我将只选择我的@Publisher变量提示SQL代码,因为我的所有Prompt @variables的SQL代码基本相同。

以下是我的发布者(@Publisher)提示的SQL代码:

=============================================== ===================================

开始
如果(@__ filterwildcard ='')
选择Distinct Publisher0
来自v_Add_Remove_Programs按发布者排序 否则
选择Distinct Publisher0 来自v_Add_Remove_Programs
Publisher0喜欢@__filterwildcard的地方 按发布者排序0 端

=============================================== ===================================

我之前用于Prompt @variables的代码就像这样,它在我的主SQL代码中不能与“Like”常量一起使用:

=============================================== ===================================

选择Distinct Publisher0
来自v_Add_Remove_Programs按Publisher0排序 Publisher0喜欢@__filterwildcard的地方 按Publisher0排序

=============================================== ===================================

因此,显然使用Begin,If,Else和End语句在此查询过程中允许更多逻辑,因此允许我在报告的主SQL代码中使用“Like”常量。